private function execute($callable, $arguments)
    {
        try {
            return call_user_func_array($callable, $arguments);
        } catch (Exception $e) {
            if ($e instanceof JsonRpc\Exception) {
                throw $e;
            } else {
                // Send the original exception to the error log (useful for debugging purposes)
                error_log(strval($e));
                // 'Rethrow' the exception, this ensures we don't reveal too much about the implementation
                throw new JsonRpc\Exception\Evaluation($e->getMessage(), $e->getCode());
            }
        }
    }