Total refactoring, Moose to Moo, and simplification, removing the role concept a bit, still trying to split up