complete generators refactor of File