Refactored constraint propagation classes.