protected function run($call)
    {
        if (!isset($call['callable'])) {
            throw new OperationStateException("\$call['callable'] was not set");
        }
        
        if (!isset($call['arguments'])) {
            try {
                is_null($call['arguments']);
            } catch (\Exception $e) {
                throw new OperationStateException("\$call['arguments'] was not set");
            }
        }
        
        if (is_callable($call['callable'])) {
            if ($call['arguments'] == self::NO_ARGUMENT) {
                return call_user_func($call['callable']);
            } else {
                return call_user_func_array($call['callable'], $call['arguments']);
            }
        } else {
            throw new OperationStateException("\$call and \$arguments passed did not pass is_callable() check");
        }
    }