optimizing
regaining 10% speed