righteye lefteye righteye move( , the basic idea is to create the left eye and then copy that into right eye which is then moved over units this doesn' work the problem here is that only one circle object is created the assignment righteye lefteye simply makes righteye refer to the very same circle as lefteye figure shows the situation when the circle is moved in the last line of codeboth righteye and lefteye refer to it in its new location on the right side this situation where two variables refer to the same object is called aliasingand it can sometimes produce rather unexpected results lefteyecircle point centerradius righteyefigure variables lefteye and righteye are aliases one solution to this problem would be to create separate circle for each eye # correct way to create two circles lefteye circle(point( ) lefteye setfill('yellow'lefteye setoutline('red'righteye circle(point( ) righteye setfill('yellow'righteye setoutline('red'this will certainly workbut it' cumbersome we had to write duplicated code for the two eyes that' easy to do using "cut and pasteapproachbut it' not very elegant if we decide to change the appearance of the eyeswe will have to be sure to make the changes in two places the graphics library provides better solutionall graphical objects support clone method that makes copy of the object using clonewe can rescue the original approach #correct way to create two circlesusing clone lefteye circle(point( ) lefteye setfill('yellow'lefteye setoutline('red'