Refactored Pooling, now use static creation method