Converting to new inheritance structure and improving events