Removed old dependencies, moved into a package, Refactored and cleaned up to be more OOP best practices