refactor, add animation, have trouble with 2nd ngchange event still
last commit before demo