finish to define event structure, need to implement it now