add uniform handling logic