why doesn't Shape  take any arguments?