initial commit
todo list untested