added optimizing (folding)
added B_Oper.optimize()