Filewatcher

use p.MainFile instead of passing mainfile string into the function, also move *SafePartialMap to parser object