fix #1: Object.hashCode() shall not depend on order of properties