This one allocates memory and hands it to the caller, that's why it's not `const`.