optimization problem interface defined separately.