Initial import

This is the first imported version, requires some more work before it's ready to be used but the general structure is ready.