Here is a small program which draws three cubes. Watch how the program is executed, step by step. Especially watch how how the inputs change when the procedures are invoked. As an example, when diamond is invoked, its :steps variable is replaced with a number.