refactored update_points