implemented optimized drag calculation