First commit
Modified to work with filesystem abstractions