Refactored conversation node to use inheritance