Soft constraints

We need a class for the state.