new functions for optimization learning.