initial commit with some of tests completed