persistent map, initial impl