diff --git a/js/PageRenderer.js b/js/PageRenderer.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b3f572aa8cce761f36c1bf8adb43389b5e49189
--- /dev/null
+++ b/js/PageRenderer.js
@@ -0,0 +1,13 @@
+export default class PageRenderer {
+	static titleElement;
+	static contentElement;
+
+	static renderPage(page) {
+		if (this.titleElement) {
+			this.titleElement.innerHTML = page.renderTitle();
+		}
+		if (this.contentElement) {
+			this.contentElement.innerHTML = page.render();
+		}
+	}
+}
diff --git a/js/main.js b/js/main.js
index 5222ee0bde34626a0a45abd1a2663eb0f8dbe9aa..a44ba05e43311271efe65c978db1edca58abeabe 100644
--- a/js/main.js
+++ b/js/main.js
@@ -1,9 +1,10 @@
 import data from './data.js';
 import Component from './components/Component.js';
 import HomePage from './pages/HomePage.js';
-
-const title = new Component('h1', null, ['La', ' ', 'carte']);
-document.querySelector('.pageTitle').innerHTML = title.render();
+import PageRenderer from './PageRenderer.js';
 
 const homePage = new HomePage(data);
-document.querySelector('.pizzasContainer').innerHTML = homePage.render();
+
+PageRenderer.titleElement = document.querySelector('.pageTitle');
+PageRenderer.contentElement = document.querySelector('.pizzasContainer');
+PageRenderer.renderPage(homePage);
diff --git a/js/pages/HomePage.js b/js/pages/HomePage.js
index 6a1f3b58494f156915e2785368797dc811b3ff7b..1f31b9531b69fec6c2bf165c07a3e2248272ba97 100644
--- a/js/pages/HomePage.js
+++ b/js/pages/HomePage.js
@@ -1,11 +1,10 @@
-import Component from '../components/Component.js';
+import Page from './Page.js';
 import PizzaThumbnail from '../components/PizzaThumbnail.js';
 
-export default class HomePage extends Component {
+export default class HomePage extends Page {
 	constructor(pizzas) {
 		super(
-			'section',
-			null,
+			'La carte',
 			pizzas.map(pizza => new PizzaThumbnail(pizza))
 		);
 	}
diff --git a/js/pages/Page.js b/js/pages/Page.js
new file mode 100644
index 0000000000000000000000000000000000000000..cab885d19db828980aafa3a19ebc77b4c7479762
--- /dev/null
+++ b/js/pages/Page.js
@@ -0,0 +1,14 @@
+import Component from '../components/Component';
+
+export default class Page extends Component {
+	title = '';
+
+	constructor(title, children) {
+		super('section', null, children);
+		this.title = title;
+	}
+
+	renderTitle() {
+		return `<h1>${this.title}</h1>`;
+	}
+}