refactor the sparkle