Initial push
This is a work-in-progress, it's functional so far though.