reading and writing
command line arguments
restructuring