redesign for 0.4.0 --  events redesign && its test cases