use input gathering now properly refactored