Work in progress. Not usable in its current form.

Needs a lot more work.