definitely avoid the "action" approach. it breaks a lot of OOP law imo.
Yea I agree...it was just a thought I had while writing the reply. NE-ways I looked at your code it looks pretty simple and a good implementation too!

If you need any help, I can post my sloppily implemented pooling method
If you wouldn't mind I'd like to see yours and webgeeks version? Just to get an idea of some different options to try.