refactor #4