reimplementing shapes