public function getObjectInstance(EntityInterface $entity, $map, ArrayObject $options)
    {
        $object = null;

        $object = new EventObject();
        foreach ($map as $field => $config) {
            $method = Inflector::variable('set ' . Inflector::variable($field));

            if ('field' == $config->type) {
                $object->$method($entity->{$config->value});
            }

            if ('value' == $config->type) {
                $object->$method($config->value);
            }

            if ('callback' == $config->type && method_exists($this, $config->value)) {
                $calleeResult = $this->{$config->value}($entity, $options, $map);

                $object->$method($calleeResult);
            }
        }

        return $object;
    }