NSMutableDictionary was being used to confine all the non-thread safe objects, but NSMD is non-thread-safe itself...oops. Locking has been implemented. Works very fast and is much safer.