args were broken due to shift and other problems -1 didn't work because of the subshell output filtering didn't work with uniq. this was resolved by adding an unbuf function which uses stdbuf to fix buffering.