actually return cur, not head