try fixing onchange for once and for all