Initial commit. VERY much a work in progress - much doesn't work (and changing themes causes a crash), but it serves as a proof of concept.