this almost compiles
this works. 10% speedup
this is broken. maybe multiple lifetame prams will fix it?
this is working now because we can use multiple lifetime parameters