pyoptsparse wrapper added here