public function cache(Closure $callback, $lifetime = null, $returnObj = false)
    {
        if ($this->imageCache === null) {
            // create imagecache
            $this->imageCache = new ImageCache($this);
        }

        // run callback
        if (\is_callable($callback)) {
            $callback($this->imageCache);
        }

        return $this->imageCache->get($lifetime, $returnObj);
    }