Agreements

still in progress but I wanted to show where I am. most of the discussed functionality is now there in some form but needs polish.