updates to add more functionality to the library