De-coupled Pool from other dependencies. Added factories where needed for proper constructor injection.