Some changes to enhance this library and make it work like how I need it for a project I am working on.