Added widget.cache(ttl) middleware