fix annotation
implement new event / hook systen
add sample code for hook / event system