the scary part about this kinda thing is that one logic error in the code, or even a badly handled recovery from some error, can really screw up with an user's permission, thats why I was attracted to trying to keep the deletion of relationships as much as possible.
Also the schema is getting big