top level and coregen only