Add pool interfaces and iterator