little refactoring + new types of Stages: Sequential, Parallel, ifElse + tests