improve user event flow