reduce recursions in generalizer