pattern hashcode is now a val