Initial Commit

Initial commit has all basic functionality, no debugging yet.