initial pool impl