I moved the lines and opacity methods inside the spin method. They should not be exposed to the outside world, and it should check the possibility to use animation or not depending on the options that are provided. So having the initVML and the initialisation of the sheet and stuff like that outside the scope of the spin method, is a way to create scope problems.