refactored completed