If you're only calling add_position() twice in main() like it looks like you're doing, then there should only be 2 positions in the list and draw_balls() should only be drawing those 2. But if you add one position, call draw_balls(), add another position, then call draw_balls() again, that's 3 balls total. The original ball being draw from the first draw_balls() call and then the original ball and the new ball from the second draw_balls() call.