PR of initial master commits

by providing a way to mute emitted events through an argument to publicly accessible functions, I think we add complexity that developers have to consider. If we want to suppress such events from being emitted, we need to find another way.