implemented list and read