crapload of refactoring and unifying fishies