many improvements to performance