a great number of function handling changes