refactor
initial pool implementation
some assertions and benchmark with pool example