Config files introduction

Created separate .config files, where one can store application parameters and overwrite them in new starting functions. These parameters are passed around throughout the whole application including the user-implemented callbacks.
refactor using double list comprehension (cartesian product)