refactor #3