be smarter about using ::File