 		{
 			let randomIndex = Int(arc4random_uniform(UInt32(shapeInitializers.count)))
 			let shapeInitializer = shapeInitializers[randomIndex]
-			
+
 			let shape = shapeInitializer(relativeFrame: randomRelativeFrame(), color: randomColor())
 			shapeArray.append(shape)
 		}
-		setNeedsDisplay()
+
+		needsShapeCreation = false
 	}
 	
 	private func randomRelativeFrame() -> CGRect

public class AbstractShapeView: UIView
{
	// MARK: - Private properties
	private var shapeArray: [AbstractShape] = []

	// MARK: - Public properties

	{
		didSet
		{
			setNeedsShapeCreation()
		}
	}
	public var shapeCount = 100
	{
		didSet
		{
			setNeedsShapeCreation()
		}
	}
	public var minShapeSize = CGFloat(0.0)
	{
		didSet
		{
			setNeedsShapeCreation()
		}
	}
	public var maxShapeSize = CGFloat(FLT_MAX)
	{
		didSet
		{
			setNeedsShapeCreation()
		}
	}

