[WIP] Clean up implementation (step 3)

**Do not merge**

(I need to know what travis thinks of my changes, so I'm submitting this PR ahead of time)