## problem
if steps where started concurrent, the stdout pipeline reader war overwritten and you randomly got the wrong command stream
from a step.
## change
where we have possible race conditions, we now use thread save types
e.g. store the command struct and the output reader in sync.Map
also a lot of tests where added