simplified pool impl