Wrote an abstraction to hopefully remove some boiler plate