Propagate input even return values in more places. Handle repeats better.