most ifs are useless (returns null when not in map)