initial checkin
passed unit and integration tests