public function construct