implement user-side file handling