protected function instantiateCallback($callbackClass, $callbackType)
    {
        if (!is_a($callbackClass, static::$callbackInterface, true))
        {
            throw new RuntimeException("Callback class '{$callbackClass}' does not implements '" .
                                       static::$callbackInterface . "' interface.");
        }

        return new $callbackClass($callbackType);
    }