added oninput support