Refactored point model