custom point implementation refactor