input reader