Pass 19: change the context in which a function is called
Pass 20: use arguments
Pass 21: apply functions with arbitrary numbers of arguments