seperation of concerns filesystem