Added object pools to reduce strain on the garbage collector