first commit...still getting spec tests to work
many changes...not yet ready for open source