cleanup, fixes #6 #5 #4 #3 #7

cleaned up all the files, added doc blocks with (hopefully) clear descriptions. and resolved a couple issues. @yields this should be pretty easy to merge in while you're working since i left off the bigger changes for later. and should hopefully make everything clearer

@calvinfo take a look in case (read: definitely do) do a bunch of dumb shit

i didn't touch tests at all, but i can clean those too once this one is merged