add first pass at pipelining