Rewrite client UI module, cache module.subX results