Major changes, the code got a bit bloated, it was time to refactor

Since this package is still new and fugly, I assume I'm still the only user and its a good time to break structure before I dwell into more complex things