gracula: mynas
abstraction: a general concept formed by extracting common features from specific examples
output contract: a contract in which you promise to deliver your entire output to the other party who promises to accept it