private function retrieve(&$from, $abstract, $args = [])
    {
        // get the entry
        $entry = $from[$abstract];

        // Closures will be invoked with DI and the result returned
        if (is_object($entry) && ($entry instanceof \Closure)) {
            return $this->invoke($entry, $args);
        }

        // return the unchanged value
        return $entry;
    }