use iterators for input; output work in progress
synth in progress