I guess this could be a private function, or even static one