add containsPoint check to containsCircle
optimize closestPointTo