Algebraic and Model Theoretical Methods in Constraint Satisfaction