added generic configuration checking for inputs, instead of doing it manually in every subclass

remove checkConfiguration(Configuration) method and replaced it with setConfiguration(config) + checkConfiguration() to maintain sanity