some redundant ids removed
(cherry picked from commit d820414)