update contracts, simplify generation