modified self ref method