I hate to say it, but there's an allocation here that needs to be changed to use a result parameter.