Restructure Point and add distance method