Refactored rectangle interface to use points