abstract interface to a single file