Add some implementation for Craftsman. Put some common role behaviour in Role (which is now an abstract class rather than an Interface.)