Initial commit with lots of basic functionality still missing.