protected function createShape()
{
$method = 'create' . ucfirst($this->shape) . 'Shape';
if (method_exists($this, $method)) {
return $this->{$method}();
}
throw new \InvalidArgumentException("Shape [{$this->shape}] currently not supported.");
}