more precise types in Point and Rectangle