use Point instead of Vector
added getBounds impl