file loading is closer to functional