Migrating more features to new structure

Goes some way to helping with #408. I've rewritten the preamble to a few
of these features, and combined them with others as it makes sense.