add functionality to take into account read states