updated DESIRED FUNCTIONS