completed File promise refactor