Implement cache in Widgets