generic pool with None destructor