some warning reduced, signed-unsigned comparison