also updating interfaces and pool to match the database pool. This is now designed based on a real use case instead of some untested idea.