Building the objects you need

To implement data piping in an application, you need to build a few different objects: