diff --git a/mininet/cleanup b/bin/mn_clean.py
similarity index 95%
rename from mininet/cleanup
rename to bin/mn_clean.py
index 8897a5668c156da1773176ac110f09cbb6690339..5bbe7e73f1c608b9417c2bd47358eaa98dd3b088 100755
--- a/mininet/cleanup
+++ b/bin/mn_clean.py
@@ -1,6 +1,8 @@
-#!/usr/bin/python
+#!/usr/bin/env python
+"""Mininet Cleanup
+
+@author Bob Lantz (rlantz@cs.stanford.edu)
 
-"""
 Unfortunately, Mininet and OpenFlow don't always clean up
 properly after themselves. Until they do (or until cleanup
 functionality is integrated into the python code), this
diff --git a/mininet/net.py b/mininet/net.py
index 0b25e88ab86bac5b3eaa5ebbf7a339eb5b5a725b..9b2abaa783ef51a0fcffcf918b7d3cd6597b729f 100755
--- a/mininet/net.py
+++ b/mininet/net.py
@@ -1,7 +1,8 @@
 #!/usr/bin/python
+"""Mininet: A simple networking testbed for OpenFlow!
 
-"""
-Mininet: A simple networking testbed for OpenFlow!
+@author Bob Lantz (rlantz@cs.stanford.edu)
+@author Brandon Heller (brandonh@stanford.edu)
 
 Mininet creates scalable OpenFlow test networks by using
 process-based virtualization and network namespaces. 
@@ -16,7 +17,7 @@
    A parent shell (and possibly some child processes) in a namespace
    
 Hosts have a network interface which is configured via ifconfig/ip
-link/etc. with data network IP addresses (e.g. 192.168.123.2 )
+link/etc.
 
 This version supports both the kernel and user space datapaths
 from the OpenFlow reference implementation.
@@ -43,40 +44,14 @@
    Switch nodes are named s0-sN
    Interfaces are named {nodename}-eth0 .. {nodename}-ethN,
 
-Thoughts/TBD:
-
-   It should be straightforward to add a function to read
-   OpenFlowVMS spec files, but I haven't done so yet.
-   For the moment, specifying configurations and tests in Python
-   is straightforward and relatively concise.
-   Soon, we may want to split the various subsystems (core,
-   topology/network, cli, tests, etc.) into multiple modules.
-   Currently nox support is in nox.py.
-   We'd like to support OpenVSwitch as well as the reference
-   implementation.
-   
-Bob Lantz
-rlantz@cs.stanford.edu
-
-History:
-11/19/09 Initial revision (user datapath only)
-11/19/09 Mininet demo at OpenFlow SWAI meeting
-12/08/09 Kernel datapath support complete
-12/09/09 Moved controller and switch routines into classes
-12/12/09 Added subdivided network driver workflow
-12/13/09 Added support for custom controller and switch classes
 """
 import os
 import re
 from subprocess import call
 import sys
 from time import sleep
-#flush = sys.stdout.flush
-#import os, re, signal, sys, select
 
-from mininet.logging_mod import lg, set_loglevel
-from mininet.node import Host, Controller, Switch, ControllerParams
-from mininet.topo import TreeTopo
+from mininet.logging_mod import lg
 from mininet.util import quietRun, fixLimits
 from mininet.util import make_veth_pair, move_intf, retry, MOVEINTF_DELAY
 
@@ -517,28 +492,4 @@ def run(self):
             else:
                 lg.error('CLI: unknown node or command: < %s >\n' % first)
             #lg.info('*** CLI: command complete\n')
-        return 'exited by user command'
-
-
-if __name__ == '__main__':
-    if len(sys.argv) > 1:
-        set_loglevel(sys.argv[1])
-    else:
-        set_loglevel('info')
-
-    init()
-    results = {}
-    lg.info("*** Welcome to Mininet!\n")
-    lg.info("*** Look in examples/ for more examples\n\n")
-    lg.info("*** Testing Mininet with kernel and user datapath\n")
-    for datapath in DATAPATHS:
-        k = datapath == 'kernel'
-        controller_params = ControllerParams(0x0a000000, 8) # 10.0.0.0/8
-        mn = Mininet(TreeTopo(), Switch, Host, Controller,
-                         controller_params)
-        mn.start()
-        dropped = mn.ping_test()
-        results[datapath] = "%i%% dropped" % dropped
-        mn.stop()
-
-    lg.info("*** Test results: %s\n", results)
\ No newline at end of file
+        return 'exited by user command'
\ No newline at end of file
diff --git a/setup.py b/setup.py
index f8f0e63a8cbbd419351bc789350f7224932efe59..da1d14e0c1b39a1f6e3d34daeebe3bbed0dc05dd 100644
--- a/setup.py
+++ b/setup.py
@@ -2,26 +2,34 @@
 '''Setuptools params'''
 
 from setuptools import setup, find_packages
+from os.path import join
+
+scripts = [join('bin', filename) for filename in
+            ['mn_run.py', 'mn_clean.py']]
+
+modname = distname = 'mininet'
 
 setup(
-    name='mininet',
+    name=distname,
     version='0.0.0',
-    description='The OpenFlow-based data center network',
+    description='Process-based OpenFlow emulator',
     author='Bob Lantz',
     author_email='rlantz@cs.stanford.edu',
     packages=find_packages(exclude='test'),
     long_description="""\
 Insert longer description here.
       """,
-      classifiers=[
+    classifiers=[
           "License :: OSI Approved :: GNU General Public License (GPL)",
           "Programming Language :: Python",
           "Development Status :: 4 - Beta",
           "Intended Audience :: Developers",
           "Topic :: Internet",
-      ],
-      keywords='networking protocol Internet OpenFlow',
-      license='GPL',
-      install_requires=[
+    ],
+    keywords='networking protocol Internet OpenFlow',
+    license='GPL',
+    install_requires=[
         'setuptools'
-      ])
+    ],
+    scripts=scripts,
+    package_dir={modname:''})