added connection pooling