add handle_files interface