EDIT: Point and Rectangle are now template structs.