Why is there a public and a private function as well?