diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..dde3895fc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.DS_Store
+*.pyc
diff --git a/apps/blockfactory/link.png b/apps/blockfactory/link.png
new file mode 100644
index 000000000..11dfd8284
Binary files /dev/null and b/apps/blockfactory/link.png differ
diff --git a/apps/code/generated/ace.js b/apps/code/generated/ace.js
new file mode 100644
index 000000000..cea66014d
--- /dev/null
+++ b/apps/code/generated/ace.js
@@ -0,0 +1,50 @@
+// This file was automatically generated from common.soy.
+// Please don't edit this file by hand.
+
+if (typeof apps == 'undefined') { var apps = {}; }
+
+
+apps.messages = function(opt_data, opt_ignored, opt_ijData) {
+ return '
Ruweuëng meuprogram ban leumahTeutheunEu kode JavaScript yang geupeuhaséKeubah ngon neupawôt keu theunNeupeujak program nyang geupeuteutap le seuneutheun lam ruweuëng keurijaPeujak programAtô keulayiKa gotPeubateuëLogisKuwienMatematikHaraihDapeutaWareunaMeumacamProsedurNa masalah lam neumeulakèeNeubagi seuneutheun droëneuh ngon peunawôt nyoë: %1Meu\'ah, \'%1\' hana saban sakri ngon peuë mantong program nyang meukeubahBeureukaih keuneubah droëneuh han jeuët geupasoë. Kadang na neupeugot ngon versi seuneutheun yang la\'éndapeutaharaih