Need to learn more about lifetimes to get this to work i think