getting ready to implement more advanced optimization algorithms