I moved direct switches checking from navigator to commander. So commander looks switches itself and tells navigator which mode he wants via vehicle_status.set_nav_state field. It looks more consistent now.