refactor and green again