preprocessor command functionality, gui and settings saving