delete: refactoring and adding specs