replaced Produce with Emit and Request