[enhance] cache