added file-based processing