reimplemented method swizzling