add create and read function