improved input