refactored and added thrust