refactors a crap ton of stuff -- #sideproject