Added extra event handlers that utilize typescript generics to provide better typing