refacto sprite system