add implementation for pool operations