Молодец, отлично написано. Только это не шейпы, а примитивы(примитивные формы, треугольник и тд(лучше только трианглы юзать)). А ещё, списки довольны быстры(почти как ВБО). Стоит так же учесть, что создавать новый лист нужно только в том случае, если хочешь заново перерисовать.
P.S. Спойлеры убоги