refactor
add global command conditions
add comand conditions specs
clearify condition interface
refactoring to add more flexibility
add ConfigBuilderSpec
add more specs