now uses Integer.MIN_VALUE instead of -1 to signify a missing user