created two object pool implementations