second iteration

William Amenhauser and Zitian He