nearly done barring new shapes