refactor() implemented