decided not to use unsigned integers