diff --git a/generate.py b/generate.py
deleted file mode 100644
index d82bc15d6b928dd2a11a1f2ebfd165d0e7400983..0000000000000000000000000000000000000000
--- a/generate.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import os
-import yaml
-from mako.lookup import TemplateLookup
-import pyrtek, pyrtek.rst, pyrtek.mako
-
-
-mako_filter = pyrtek.mako.Filter(TemplateLookup(['../templates']))
-rst_filter = pyrtek.rst.Filter()
-
-filters = {'mako': mako_filter,
-          'rst': rst_filter,
-          'default': pyrtek.chain_filters(rst_filter, mako_filter)}
-
-default_meta = {'__filter__': 'default',
-                '__template__': 'default.mako'}
-
-# rexp, repl, priority, func
-rules = [(r'(.*)\.txt$', r'\1.html', 0,
-          lambda s, d: pyrtek.Text(s, d, filters, default_meta))]
-
-
-def main():
-    # Load catalog, if it exists.
-    try:
-        with open('catalog.yaml') as f:
-            catalog = yaml.load(f)
-    except IOError:
-        catalog = {}
-
-    # The following block of code is executed inside the content directory.
-    saved_cwd = os.getcwd();
-    os.chdir('content')
-    try:
-        catalog = pyrtek.build(pyrtek.expand_rules(rules), catalog)
-    finally:
-        os.chdir(saved_cwd)
-
-    # Save catalog.
-    with open('catalog.yaml', 'w') as f:
-        yaml.dump(catalog, f)
-
-
-if __name__ == '__main__':
-    main()
diff --git a/my_figure_drafts/bilayer.png b/my_figure_drafts/bilayer.png
deleted file mode 100644
index 80eba1aa805f05e748328248220b07512ee7ed37..0000000000000000000000000000000000000000
Binary files a/my_figure_drafts/bilayer.png and /dev/null differ
diff --git a/pyrtek/__init__.py b/pyrtek/__init__.py
deleted file mode 100644
index 6daa48aaa8faf84fedb02d86cbc45ba0397699b9..0000000000000000000000000000000000000000
--- a/pyrtek/__init__.py
+++ /dev/null
@@ -1,113 +0,0 @@
-import os, os.path
-import re
-import abc
-import logging
-import yaml
-
-log = logging.getLogger(__name__)
-
-class Item(object):
-    __metaclass__ = abc.ABCMeta
-
-    @abc.abstractproperty
-    def name(self):
-        pass
-
-    def isuptodate(self, oldmeta, catalog):
-        return False
-
-    def render(self, catalog):
-        """Render the item, return re-generated metadata."""
-        pass
-
-
-class Text(Item):
-    def __init__(self, source, dest, filters, default_meta={}):
-        self.source = source
-        self.dest = dest
-        self.filters = filters
-        self.default_meta = default_meta
-
-    def __repr__(self):
-        return '<{0}({1}, {2}, ...)>'.format(
-            self.__class__.__name__, self.source, self.dest)
-
-    @property
-    def name(self):
-        return self.dest
-
-    def render(self, catalog):
-        meta = self.default_meta.copy()
-
-        # Initialize data and metadata from source file.
-        with open(self.source) as f:
-            data = f.read().decode('utf-8')
-        if data.startswith('---\n'):
-            meta_yaml, data = data.split('\n---\n', 1)
-            meta.update(yaml.safe_load(meta_yaml[4:]))
-
-        # Appply filter.
-        try:
-            filter_name = meta['__filter__']
-        except KeyError:
-            log.error('{0}: No __filter__ defined.'.format(self.source))
-        else:
-            try:
-                filter = self.filters[filter_name]
-            except KeyError:
-                log.error('{0}: No filter {0}.'.format(filter_name))
-            else:
-                data, meta = filter(data, meta, self.dest, catalog)
-
-        # Write filtered data to destination file.
-        with open(self.dest, 'w') as f:
-            f.write(data.encode('utf-8'))
-
-        return meta
-
-
-def build(items, old_catalog={}):
-    catalog = {}
-
-    for item in items:
-        name = item.name
-        meta = old_catalog.get(name)
-        if meta is None or not item.isuptodate(meta, catalog):
-            meta = item.render(catalog)
-        if name in catalog:
-            log.warning('{0} already present.'.format(name))
-        catalog[name] = meta
-
-    return catalog
-
-
-def chain_filters(*filters):
-    def chained(data, meta, name, catalog):
-        for filter in filters:
-            data, meta = filter(data, meta, name, catalog)
-        return data, meta
-
-    return chained
-
-
-def expand_rules(rules):
-    rules = [(rexp if hasattr(rexp, 'match') else re.compile(rexp),
-             repl, priority, func)
-             for rexp, repl, priority, func in rules]
-
-    priority_item_seq = []
-    for root, dirs, files in os.walk('.'):
-        for file in files:
-            # For security, do not follow symlinks.
-            source = os.path.join(root, file)
-            if os.path.islink(os.path.join(root, file)):
-                log.warn('Ignoring symlink: {0}'.format(source))
-                continue
-            for rexp, repl, priority, func in rules:
-                if not rexp.match(source):
-                    continue
-                dest = rexp.sub(repl, source)
-                priority_item_seq.append((priority, func(source, dest)))
-
-    priority_item_seq.sort(key=lambda p_i: p_i[0])
-    return [i for p, i in priority_item_seq]
diff --git a/pyrtek/mako.py b/pyrtek/mako.py
deleted file mode 100644
index 8f2b7712fea66b7c731c5192d08226913bbe804a..0000000000000000000000000000000000000000
--- a/pyrtek/mako.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import logging
-
-log = logging.getLogger(__name__)
-
-class Filter(object):
-    def __init__(self, lookup):
-        self.lookup = lookup
-
-    def __call__(self, data, meta, name, catalog):
-        try:
-            template_name = meta['__template__']
-        except KeyError:
-            log.error('{0}: No __template__ defined.'.format(name))
-            return None, meta
-
-        # TODO: surround with try-block
-        template = self.lookup.get_template(template_name)
-        data = template.render(body=data, name=name, meta=meta, catalog=catalog)
-
-        return data, meta
diff --git a/pyrtek/rst.py b/pyrtek/rst.py
deleted file mode 100644
index 3cee10ab75718d2026b353f9a0517c5b5266f1ad..0000000000000000000000000000000000000000
--- a/pyrtek/rst.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import logging
-import docutils.core, docutils.nodes, docutils.io, docutils as du
-
-log = logging.getLogger(__name__)
-
-class Filter(object):
-    def __call__(self, data, meta, name, catalog):
-        doctree = du.core.publish_doctree(data)
-        parts = du.core.publish_parts(
-            doctree, reader_name='doctree', source_class=du.io.DocTreeInput,
-            writer_name='html', settings_overrides={'initial_header_level': 2})
-        data = parts['html_body']
-        meta.setdefault('title', parts['title'])
-        meta.setdefault('subtitle', parts['subtitle'])
-        return data, meta
diff --git a/serve.py b/serve.py
deleted file mode 100644
index 136855cff84c000d3ff9fce771188140ba5d2d08..0000000000000000000000000000000000000000
--- a/serve.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# Taken from
-# http://www.linuxjournal.com/content/tech-tip-really-simple-http-server-python
-
-import os
-import BaseHTTPServer
-from SimpleHTTPServer import SimpleHTTPRequestHandler
-
-
-HandlerClass = SimpleHTTPRequestHandler
-ServerClass  = BaseHTTPServer.HTTPServer
-Protocol     = "HTTP/1.0"
-
-server_address = ('127.0.0.1', 8000)
-
-HandlerClass.protocol_version = Protocol
-httpd = ServerClass(server_address, HandlerClass)
-
-sa = httpd.socket.getsockname()
-print "Serving HTTP on", sa[0], "port", sa[1], "..."
-os.chdir('content')
-httpd.serve_forever()