Turns out this already existed