Broke up classes into subclasses