added arbitrary file solution