refactor point methods