fix: use modern uniform api