This function is not meant to be used by the end user, right? It should probably be private.