doc for developing optimizer