implemented Pipe object