Changed the events to align with the standard event pattern in .NET