Updated IObserver/IProducer pattern to be Enum-based instead of int-based.