further performance optimizations