valuechanges called twice