fix signed vs. unsigned warning