Not completely in love with the extra 'emit' prefixes. . . . it's less DSLey