refactor File architecture