added object cache so that locks, counters, etc. are reused if possible