removed need for optimizer interface inheritance.