some optimization (2)