Refactor some classes to support unit testing
Work on "Shelf" abstraction and shortlist