first attempt to solve moderation problem
basic permissions abstraction class
rebase cleanup