updated inputloop