introduced two functions