some optimization in case no cache is used