Fix abstractions around separated navigate event function