better getSha and read functions