Added layer support, but Undo mechanism needs to invalidate the BitmapData on the screen.