add specs.  refactor.