Proposed v1

@dominctarr: I'll leave this pull request around for a day or so in case you want to poke around & suggest some improvements :)