first two methods
implement times()
implement makeOrderedLeafList()
implement singleton()
implement combine()
implement until()