Define the terms of an agreement... programatically.