change how we handle Self, update tests for recursive method check scenario