several performance improvements on client side