Functional first stab at file based implementation
Refactorings. Added acceptance test case.