factored out shapes put them in their own class