don't read files every function call