fixed the bug... hashCode() can return negative ints... wtf