before contract model