allow override of the no emit behavior by pulling out to a separate function