use with statement for file operations
allow offline usage
todos