fixed read functions