moved list of allowed characters to initilize the settings struct
cashed rules list now stores invalid characters instead of allowed characters to prevent accadental doubling in rules