multiple pipes implemented, working perfectly