Agreement class for handling contract based pattern.