initial commit
many updates in preparation for tests
initial commit