Some things that need doing: Rename relations: post.person needs to be post.owner group.people might want to be group.members person.owner should probably be person.user Refactor receive: user.receive is a little horrifying right now. Maybe make a model.import or model.perform function which can be called on all the classes. Definitely move the varied signature verification methods into a unified object.signature_valid? or signatures_valid?