only read the hidden position when we need to