working some optimization else