kitchen sink

please take a look at the commit messages for each commit :)