Logic : (code is at home) I have an arraylist of invader types. I have 5 rows of 10 invaders. I have a global variable to set whether they are moving left or right as a group. I have another global variable to set the group movement speed. Finally I have a final global variable that determines the step motion for when they drop a line at a time. So what is my problem? On each move, some rows get slightly 'skewed', meaning for the first few trips they are in synch, but as time goes on they get slightly out of sync, and not the way one would expect. I would expect that an entire row would get out of synch, not individual invaders in individual rows. My loop before the movement has a local variable that is the Time.getdeltatime, this then is multiplied by my speed, that result then is used by all invaders in the loop and isn't set again until the move method is called. Theoretically, this should keep all invaders moving at the same speed, same distance each time within there own row. If any single invader hits the board edge, all invaders are flipped to move to the new direction. After 3 itterations of hitting the right edge of the board, all invaders move 1 full row down. The problem seems to be with the shifting from left to right then right to left. Does my logic sound correct or will I need to post the movement code tonight for input?