Create 2d primitive shapes, encapsulate and repeat them by handling each repetition and generate recursive shapes