updated Map to use Location class as key instead of its hash code; closes #7
fixed equals so that it doesn't rely on hashCode