greatly simplify the separate uniform overloads