multiple shapes, some bugs with the implementation