refactoring things around into packages
unit testing! lol