Dynamic text composer