further optimized