protected function runDefinedMethods(/*# string */ $id, $service)
    {
        try {
            if (isset($this->services[$id]['methods'])) {
                $methods = $this->services[$id]['methods'];

                foreach ($methods as $method) {
                    if (!is_array($method) ||
                        !isset($method[0]) ||
                        !is_string($method[0])
                    ) {
                        throw new LogicException(
                            Message::get(
                                Message::SERVICE_METHOD_ERROR,
                                $id,
                                isset($method[0]) ? $method[0] : ''
                            ),
                            Message::SERVICE_METHOD_ERROR
                        );
                    }

                    // execute with arguments
                    $this->executeCallable(
                        [ $service, $method[0] ],
                        isset($method[1]) ? (array) $method[1] : []
                    );
                }
            }
        } catch (\Exception $e) {
            throw new LogicException($e->getMessage(), $e->getCode(), $e);
        }
    }