Use multi-method dispatch events.
Fix go-loop
Fix warning.