got basic pipeline working. I hate types that aren't covariant