Feature/struct for arguments

Build a kind of context before running the application that is a combination of command line arguments and configuration file.
More changes were performed as tests were written.