add backreference, update other changes