Some class design principles