added .equals and .hashcode to Pages, to be used when List.contains() is called