updating, adding rectangle functionality, license mit