some optimisations like asynchrous texture loading