Port of framework_agreement module