use object_setClass instead of set isa immediately to avoid warning in Xcode 4.6