first input set added
first input set added
further refactoring