Make buildable, add initial implementation, abstract the concept of a term