diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp
index 5ecab2999..86588f203 100644
--- a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp
+++ b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp
@@ -54,7 +54,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 #include "ui/boxes/boost_box.h"
 #include "ui/controls/emoji_button.h"
 #include "ui/controls/userpic_button.h"
-#include "ui/effects/premium_top_bar.h"
+#include "ui/effects/premium_graphics.h"
 #include "ui/rect.h"
 #include "ui/rp_widget.h"
 #include "ui/vertical_list.h"
diff --git a/Telegram/SourceFiles/ui/effects/premium_graphics.cpp b/Telegram/SourceFiles/ui/effects/premium_graphics.cpp
index d04dae62b..54361d545 100644
--- a/Telegram/SourceFiles/ui/effects/premium_graphics.cpp
+++ b/Telegram/SourceFiles/ui/effects/premium_graphics.cpp
@@ -27,7 +27,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 #include "styles/style_settings.h"
 #include "styles/style_window.h"
 
+#include <QtCore/QFile>
 #include <QtGui/QBrush>
+#include <QtSvg/QSvgRenderer>
 
 namespace Ui {
 namespace Premium {
@@ -903,6 +905,70 @@ void Line::recache(const QSize &s) {
 
 } // namespace
 
+QString Svg() {
+	return u":/gui/icons/settings/star.svg"_q;
+}
+
+QByteArray ColorizedSvg(const QGradientStops &gradientStops) {
+	auto f = QFile(Svg());
+	if (!f.open(QIODevice::ReadOnly)) {
+		return QByteArray();
+	}
+	auto content = QString::fromUtf8(f.readAll());
+	auto stops = [&] {
+		auto s = QString();
+		for (const auto &stop : gradientStops) {
+			s += QString("<stop offset='%1' stop-color='%2'/>")
+				.arg(QString::number(stop.first), stop.second.name());
+		}
+		return s;
+	}();
+	const auto color = QString("<linearGradient id='Gradient2' "
+		"x1='%1' x2='%2' y1='%3' y2='%4'>%5</linearGradient>")
+		.arg(0)
+		.arg(1)
+		.arg(1)
+		.arg(0)
+		.arg(std::move(stops));
+	content.replace(u"gradientPlaceholder"_q, color);
+	content.replace(u"#fff"_q, u"url(#Gradient2)"_q);
+	f.close();
+	return content.toUtf8();
+}
+
+QImage GenerateStarForLightTopBar(QRectF rect) {
+	auto svg = QSvgRenderer(Ui::Premium::Svg());
+
+	const auto size = rect.size().toSize();
+	auto frame = QImage(
+		size * style::DevicePixelRatio(),
+		QImage::Format_ARGB32_Premultiplied);
+	frame.setDevicePixelRatio(style::DevicePixelRatio());
+
+	auto mask = frame;
+	mask.fill(Qt::transparent);
+	{
+		auto p = QPainter(&mask);
+		auto gradient = QLinearGradient(
+			0,
+			size.height(),
+			size.width(),
+			0);
+		gradient.setStops(Ui::Premium::ButtonGradientStops());
+		p.setPen(Qt::NoPen);
+		p.setBrush(gradient);
+		p.drawRect(0, 0, size.width(), size.height());
+	}
+	frame.fill(Qt::transparent);
+	{
+		auto q = QPainter(&frame);
+		svg.render(&q, QRect(QPoint(), size));
+		q.setCompositionMode(QPainter::CompositionMode_SourceIn);
+		q.drawImage(0, 0, mask);
+	}
+	return frame;
+}
+
 void AddBubbleRow(
 		not_null<Ui::VerticalLayout*> parent,
 		const style::PremiumBubble &st,
diff --git a/Telegram/SourceFiles/ui/effects/premium_graphics.h b/Telegram/SourceFiles/ui/effects/premium_graphics.h
index 339d49a3d..d1ba4f9d7 100644
--- a/Telegram/SourceFiles/ui/effects/premium_graphics.h
+++ b/Telegram/SourceFiles/ui/effects/premium_graphics.h
@@ -41,6 +41,10 @@ namespace Premium {
 
 inline constexpr auto kLimitRowRatio = 0.5;
 
+[[nodiscard]] QString Svg();
+[[nodiscard]] QByteArray ColorizedSvg(const QGradientStops &gradientStops);
+[[nodiscard]] QImage GenerateStarForLightTopBar(QRectF rect);
+
 void AddBubbleRow(
 	not_null<Ui::VerticalLayout*> parent,
 	const style::PremiumBubble &st,
diff --git a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp
index 640a96b3e..e2b619273 100644
--- a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp
+++ b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp
@@ -16,8 +16,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 #include "styles/style_settings.h"
 #include "styles/style_premium.h"
 
-#include <QtCore/QFile>
-
 namespace Ui::Premium {
 namespace {
 
@@ -42,70 +40,6 @@ constexpr auto kMinAcceptableContrast = 4.5; // 1.14;
 
 } // namespace
 
-QString Svg() {
-	return u":/gui/icons/settings/star.svg"_q;
-}
-
-QByteArray ColorizedSvg(const QGradientStops &gradientStops) {
-	auto f = QFile(Svg());
-	if (!f.open(QIODevice::ReadOnly)) {
-		return QByteArray();
-	}
-	auto content = QString::fromUtf8(f.readAll());
-	auto stops = [&] {
-		auto s = QString();
-		for (const auto &stop : gradientStops) {
-			s += QString("<stop offset='%1' stop-color='%2'/>")
-				.arg(QString::number(stop.first), stop.second.name());
-		}
-		return s;
-	}();
-	const auto color = QString("<linearGradient id='Gradient2' "
-		"x1='%1' x2='%2' y1='%3' y2='%4'>%5</linearGradient>")
-		.arg(0)
-		.arg(1)
-		.arg(1)
-		.arg(0)
-		.arg(std::move(stops));
-	content.replace(u"gradientPlaceholder"_q, color);
-	content.replace(u"#fff"_q, u"url(#Gradient2)"_q);
-	f.close();
-	return content.toUtf8();
-}
-
-QImage GenerateStarForLightTopBar(QRectF rect) {
-	auto svg = QSvgRenderer(Ui::Premium::Svg());
-
-	const auto size = rect.size().toSize();
-	auto frame = QImage(
-		size * style::DevicePixelRatio(),
-		QImage::Format_ARGB32_Premultiplied);
-	frame.setDevicePixelRatio(style::DevicePixelRatio());
-
-	auto mask = frame;
-	mask.fill(Qt::transparent);
-	{
-		auto p = QPainter(&mask);
-		auto gradient = QLinearGradient(
-			0,
-			size.height(),
-			size.width(),
-			0);
-		gradient.setStops(Ui::Premium::ButtonGradientStops());
-		p.setPen(Qt::NoPen);
-		p.setBrush(gradient);
-		p.drawRect(0, 0, size.width(), size.height());
-	}
-	frame.fill(Qt::transparent);
-	{
-		auto q = QPainter(&frame);
-		svg.render(&q, QRect(QPoint(), size));
-		q.setCompositionMode(QPainter::CompositionMode_SourceIn);
-		q.drawImage(0, 0, mask);
-	}
-	return frame;
-}
-
 TopBarAbstract::TopBarAbstract(
 	QWidget *parent,
 	const style::PremiumCover &st)
diff --git a/Telegram/SourceFiles/ui/effects/premium_top_bar.h b/Telegram/SourceFiles/ui/effects/premium_top_bar.h
index 86c8158ff..194527025 100644
--- a/Telegram/SourceFiles/ui/effects/premium_top_bar.h
+++ b/Telegram/SourceFiles/ui/effects/premium_top_bar.h
@@ -25,10 +25,6 @@ class FlatLabel;
 
 namespace Ui::Premium {
 
-[[nodiscard]] QString Svg();
-[[nodiscard]] QByteArray ColorizedSvg(const QGradientStops &gradientStops);
-[[nodiscard]] QImage GenerateStarForLightTopBar(QRectF rect);
-
 class TopBarAbstract : public RpWidget {
 public:
 	TopBarAbstract(