refactoring and new input strategies