add read and write private function
add driver