initial commit. all specs pass.