changed all tabs to whitespace, probably bad idea, changed hashing to not use address