added contract class