refactor and add specs