Move "once" logic into the View layer