added raising of events and more consistent naming