Why not use this internal event system here?