cache mechanism is not complet and cause edge case