change self method's logic