I feel that this should be a private function.