Why does this not exist already?