Pure newSourceFile

Now IO won't occur until parse