input transfoers refactoring