file input, substitution input, need to work on map