fixed bugs. read pass