further performance improvements