initial commit
finished more tests and code
merged