We're going to want to leverage the type system to make this automatic, this is fine for now but in a bit.
Need to think more about this first