wip: initial pass at pipeline components