better demo (with input)