rather throw an exception explaining what went wrong than triggering a php warning on empty filename. should we even do file_exists()?