Added hasAll and equals methods