refactor : add abstract class SoloEventBase