added socratic method