wip: initial pass at pipeline objects