better file wrapper