base class, implements events and aspect