reworked input