added emitting construct, like model