some bugs were fixed in addMethodWithSelector