Internal refactor: InputCollector