Input Refactor