diff --git a/sourceview.py b/sourceview.py
new file mode 100755
index 0000000000000000000000000000000000000000..c2f4e8b0d43be687353d2516cd3be24c1f39d4f5
--- /dev/null
+++ b/sourceview.py
@@ -0,0 +1,68 @@
+#!/usr/bin/env python2
+
+import sys
+import os
+
+# set to location of libgstkaldionline2.so
+os.environ['GST_PLUGIN_PATH'] = './asr/'
+os.environ['GTK_THEME'] = 'light'
+
+# import gtk stuff
+from threading import Thread
+import gi
+gi.require_version('Gst', '1.0')
+from gi.repository import GObject, Gst, Gtk, Gdk, GtkSource
+GObject.threads_init()
+Gdk.threads_init()
+Gst.init(None)
+
+# make sure ctrl-c works
+import signal
+signal.signal(signal.SIGINT, signal.SIG_DFL)
+
+# import local stuff
+import asr
+
+class SourceView(Gtk.Window):
+    def __init__(self, asr_config_file):
+        super(SourceView, self).__init__()
+
+        self.connect("destroy", self.quit)
+        self.set_default_size(800,600)
+        self.set_border_width(10)
+        self.set_title('SourceView')
+        vbox = Gtk.VBox()
+
+        self.source_buffer = GtkSource.Buffer()
+        lang_manager = GtkSource.LanguageManager()
+        self.source_buffer.set_language(lang_manager.get_language('python'))
+        self.source_buffer.set_text(open(__file__).read())
+        self.source_view = GtkSource.View.new_with_buffer(self.source_buffer)
+        self.source_view.set_show_line_numbers(True)
+        self.source_view.set_tab_width(4)
+        self.scrolled = Gtk.ScrolledWindow()
+        self.scrolled.add(self.source_view)
+        vbox.pack_start(self.scrolled, True, True, 5)
+
+        self.asr = asr.ASR(asr_config_file, self.hyp_changed)
+        vbox.pack_start(self.asr, False, True, 5)
+
+        self.add(vbox)
+        self.show_all()
+
+        # load css style
+        style_provider = Gtk.CssProvider()
+        style_provider.load_from_data(open('data/style.css', 'rb').read())
+        Gtk.StyleContext.add_provider_for_screen( Gdk.Screen.get_default(), style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
+
+    def hyp_changed(self, hyp):
+        pass
+
+    def quit(self, window):
+        Gtk.main_quit()
+
+
+if __name__ == '__main__':
+    asr_config_file = 'asr/fisher-benoit-1.cfg'
+    app = SourceView(asr_config_file)
+    Gtk.main()