allow some part to be empty
change pool size
keep most recently used conn in pool
add redis cache