refactor point 1