use map for reading