do some Optimization