Configuration requirement

closes #157 
closes #212
this should probably be moved to (a seperate method in) ConfigurationRequirement to avoid code-replication in the subclasses