file() refactored