added base Pipe class