Added a Library class to make a better abstraction