sprite renderer refactor