refactor contract, remove useless ContractCity class
can save correctly new contract