Added a Shelf class and 2 subclasses to organzied logic better