parse immediately on change

this will break with larger files, to handle that
we'll need to some fancy footwork