Separate agree and get_agreement methods