Fix #18: Rewrite vc_cache()