Separating out filesystem so I can mock it in the sandbox