added the framework for the new optimization algo