shouldn't we use app messenger for this instead since this could block the ui thread?