For starters. a single sprite, multiple frames. Width, height, scale are all values that can be modified on the fly to get variation between the same piece. not to mention flipping/reflecting a sprite.
The sprite, should create and destroy itself. (if using multiple sprites instead of frames, they should create and destroy each other)
at higher speeds, if the sprite is not in control of its own creation and destruction, (for instance you have a separate object that spawns the pieces) the game will break apart. Pieces won't align.
I would share a demo, but being an idiot I formated my drives before I published.....lost a good deal. sadly my dropbox has an old broken implementation.
But hey, next time around I have plenty of room for improvement. good learning process haha.