add Optimizable trait