Can we make this `internal` and maybe move it into `Core`?