* Move the text rendering out for reusability * Refactor common operations in the reasoning pipeline * Add run method * Provide dedicated method for invoke