some abstraction into files