Add event tests and bind/listen