Moar classes. Roles. And stuff. And dispatch

todo : muti dispatch