private static function instantiate(array $declaration)
    {
        $fieldType = array_shift($declaration);

        $class = "\\Zerg\\Field\\" . ucfirst(strtolower($fieldType));
        if (class_exists($class)) {
            $reflection = new \ReflectionClass($class);
            return $reflection->newInstanceArgs($declaration);
        }

        throw new ConfigurationException("Field {$fieldType} doesn't exist");
    }