Update

Changed some package structure, added a version class for easy version
comparing and storing of things, played around with the logging/stream
printing a bit but i'm still not happy where its at as well as the way
we handle errors internally(it all feels a little confusing), cleaned
up a few bugs from the changes and started to block out the tool class
structure