add cache

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>