[API] Event framework