why do we cache these point?