requires optimizer section