add specs
refactor