split up computationally expensive contsraints