update supporting functions