Hopefully revert the revert...

Try and cope with merge hell.

This branch essentially attempts to be a history less clone of the `features/change-delete` at includes all the changes reverted by the initial merge of this branch into `develop`. The tests seem to pass locally.

![tumblr_mdlcix02BU1r8xaoio1_500](https://f.cloud.github.com/assets/317734/97750/dde00bfe-6705-11e2-917a-fdb8ad5d6148.jpeg)