Initial commit

Work in progress. It compiles. Need more testing.