reduced code dup