public function addSource($adapter, Request $request = null)
    {
        if ($request === null) {
            $request = new Request();
        }

        $this->addDefinition(
            'sources',
            array((is_callable($adapter) ? new CallbackAdapter($adapter, null) : $adapter), $request)
        );

        return $this;
    }