most reading functions are complete