C#: Properly refactored ValueEvent to UnaryValueEvent