map cache the pointer of the list