giving it a backbone

pretty big changes happening here, i'm re-rethinking a few things here.
after i sat down with the backbone docs i came to realise it does a lot
more than i thought. more details in readme.