- More clearly defined behavior of optimization
- Provided a way for the user to modify the input function
- Created tests to verify behavior