added contract fields and changed mcl method