reduce 5 to 3
replace uint with unsigned