diff --git a/venv/bin/activate b/venv/bin/activate
deleted file mode 100644
index adfb849..0000000
--- a/venv/bin/activate
+++ /dev/null
@@ -1,76 +0,0 @@
-# This file must be used with "source bin/activate" *from bash*
-# you cannot run it directly
-
-deactivate () {
-    # reset old environment variables
-    if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
-        PATH="${_OLD_VIRTUAL_PATH:-}"
-        export PATH
-        unset _OLD_VIRTUAL_PATH
-    fi
-    if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
-        PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
-        export PYTHONHOME
-        unset _OLD_VIRTUAL_PYTHONHOME
-    fi
-
-    # This should detect bash and zsh, which have a hash command that must
-    # be called to get it to forget past commands.  Without forgetting
-    # past commands the $PATH changes we made may not be respected
-    if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
-        hash -r
-    fi
-
-    if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
-        PS1="${_OLD_VIRTUAL_PS1:-}"
-        export PS1
-        unset _OLD_VIRTUAL_PS1
-    fi
-
-    unset VIRTUAL_ENV
-    if [ ! "$1" = "nondestructive" ] ; then
-    # Self destruct!
-        unset -f deactivate
-    fi
-}
-
-# unset irrelevant variables
-deactivate nondestructive
-
-VIRTUAL_ENV="/home/htf6ry/gf180-demo/venv"
-export VIRTUAL_ENV
-
-_OLD_VIRTUAL_PATH="$PATH"
-PATH="$VIRTUAL_ENV/bin:$PATH"
-export PATH
-
-# unset PYTHONHOME if set
-# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
-# could use `if (set -u; : $PYTHONHOME) ;` in bash
-if [ -n "${PYTHONHOME:-}" ] ; then
-    _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
-    unset PYTHONHOME
-fi
-
-if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
-    _OLD_VIRTUAL_PS1="${PS1:-}"
-    if [ "x(venv) " != x ] ; then
-	PS1="(venv) ${PS1:-}"
-    else
-    if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
-        # special case for Aspen magic directories
-        # see http://www.zetadev.com/software/aspen/
-        PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
-    else
-        PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
-    fi
-    fi
-    export PS1
-fi
-
-# This should detect bash and zsh, which have a hash command that must
-# be called to get it to forget past commands.  Without forgetting
-# past commands the $PATH changes we made may not be respected
-if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
-    hash -r
-fi
diff --git a/venv/bin/activate.csh b/venv/bin/activate.csh
deleted file mode 100644
index 64d014f..0000000
--- a/venv/bin/activate.csh
+++ /dev/null
@@ -1,37 +0,0 @@
-# This file must be used with "source bin/activate.csh" *from csh*.
-# You cannot run it directly.
-# Created by Davide Di Blasi <davidedb@gmail.com>.
-# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
-
-alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate'
-
-# Unset irrelevant variables.
-deactivate nondestructive
-
-setenv VIRTUAL_ENV "/home/htf6ry/gf180-demo/venv"
-
-set _OLD_VIRTUAL_PATH="$PATH"
-setenv PATH "$VIRTUAL_ENV/bin:$PATH"
-
-
-set _OLD_VIRTUAL_PROMPT="$prompt"
-
-if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
-    if ("venv" != "") then
-        set env_name = "venv"
-    else
-        if (`basename "VIRTUAL_ENV"` == "__") then
-            # special case for Aspen magic directories
-            # see http://www.zetadev.com/software/aspen/
-            set env_name = `basename \`dirname "$VIRTUAL_ENV"\``
-        else
-            set env_name = `basename "$VIRTUAL_ENV"`
-        endif
-    endif
-    set prompt = "[$env_name] $prompt"
-    unset env_name
-endif
-
-alias pydoc python -m pydoc
-
-rehash
diff --git a/venv/bin/activate.fish b/venv/bin/activate.fish
deleted file mode 100644
index ad1a434..0000000
--- a/venv/bin/activate.fish
+++ /dev/null
@@ -1,75 +0,0 @@
-# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org)
-# you cannot run it directly
-
-function deactivate  -d "Exit virtualenv and return to normal shell environment"
-    # reset old environment variables
-    if test -n "$_OLD_VIRTUAL_PATH"
-        set -gx PATH $_OLD_VIRTUAL_PATH
-        set -e _OLD_VIRTUAL_PATH
-    end
-    if test -n "$_OLD_VIRTUAL_PYTHONHOME"
-        set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
-        set -e _OLD_VIRTUAL_PYTHONHOME
-    end
-
-    if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
-        functions -e fish_prompt
-        set -e _OLD_FISH_PROMPT_OVERRIDE
-        functions -c _old_fish_prompt fish_prompt
-        functions -e _old_fish_prompt
-    end
-
-    set -e VIRTUAL_ENV
-    if test "$argv[1]" != "nondestructive"
-        # Self destruct!
-        functions -e deactivate
-    end
-end
-
-# unset irrelevant variables
-deactivate nondestructive
-
-set -gx VIRTUAL_ENV "/home/htf6ry/gf180-demo/venv"
-
-set -gx _OLD_VIRTUAL_PATH $PATH
-set -gx PATH "$VIRTUAL_ENV/bin" $PATH
-
-# unset PYTHONHOME if set
-if set -q PYTHONHOME
-    set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
-    set -e PYTHONHOME
-end
-
-if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
-    # fish uses a function instead of an env var to generate the prompt.
-
-    # save the current fish_prompt function as the function _old_fish_prompt
-    functions -c fish_prompt _old_fish_prompt
-
-    # with the original prompt function renamed, we can override with our own.
-    function fish_prompt
-        # Save the return status of the last command
-        set -l old_status $status
-
-        # Prompt override?
-        if test -n "(venv) "            
-            printf "%s%s" "(venv) " (set_color normal)
-        else
-            # ...Otherwise, prepend env
-            set -l _checkbase (basename "$VIRTUAL_ENV")
-            if test $_checkbase = "__"
-                # special case for Aspen magic directories
-                # see http://www.zetadev.com/software/aspen/
-                printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal)
-            else
-                printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal)
-            end
-        end
-
-        # Restore the return status of the previous command.
-        echo "exit $old_status" | .
-        _old_fish_prompt
-    end
-
-    set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
-end
diff --git a/venv/bin/easy_install b/venv/bin/easy_install
deleted file mode 100644
index c208893..0000000
--- a/venv/bin/easy_install
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/home/htf6ry/gf180-demo/venv/bin/python3
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from setuptools.command.easy_install import main
-
-if __name__ == '__main__':
-    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
-    sys.exit(main())
diff --git a/venv/bin/easy_install-3.6 b/venv/bin/easy_install-3.6
deleted file mode 100644
index c208893..0000000
--- a/venv/bin/easy_install-3.6
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/home/htf6ry/gf180-demo/venv/bin/python3
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from setuptools.command.easy_install import main
-
-if __name__ == '__main__':
-    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
-    sys.exit(main())
diff --git a/venv/bin/pip b/venv/bin/pip
deleted file mode 100644
index ed77269..0000000
--- a/venv/bin/pip
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/home/htf6ry/gf180-demo/venv/bin/python3
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from pip._internal.cli.main import main
-
-if __name__ == '__main__':
-    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
-    sys.exit(main())
diff --git a/venv/bin/pip3 b/venv/bin/pip3
deleted file mode 100644
index ed77269..0000000
--- a/venv/bin/pip3
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/home/htf6ry/gf180-demo/venv/bin/python3
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from pip._internal.cli.main import main
-
-if __name__ == '__main__':
-    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
-    sys.exit(main())
diff --git a/venv/bin/pip3.6 b/venv/bin/pip3.6
deleted file mode 100644
index ed77269..0000000
--- a/venv/bin/pip3.6
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/home/htf6ry/gf180-demo/venv/bin/python3
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from pip._internal.cli.main import main
-
-if __name__ == '__main__':
-    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
-    sys.exit(main())
diff --git a/venv/pyvenv.cfg b/venv/pyvenv.cfg
deleted file mode 100644
index d411f1c..0000000
--- a/venv/pyvenv.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-home = /usr/bin
-include-system-site-packages = false
-version = 3.6.9
diff --git a/venv/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl b/venv/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl
deleted file mode 100644
index ce043aa..0000000
--- a/venv/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/appdirs-1.4.3-py2.py3-none-any.whl b/venv/share/python-wheels/appdirs-1.4.3-py2.py3-none-any.whl
deleted file mode 100644
index a06095f..0000000
--- a/venv/share/python-wheels/appdirs-1.4.3-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/certifi-2018.1.18-py2.py3-none-any.whl b/venv/share/python-wheels/certifi-2018.1.18-py2.py3-none-any.whl
deleted file mode 100644
index ea6a818..0000000
--- a/venv/share/python-wheels/certifi-2018.1.18-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/chardet-3.0.4-py2.py3-none-any.whl b/venv/share/python-wheels/chardet-3.0.4-py2.py3-none-any.whl
deleted file mode 100644
index 19cfee2..0000000
--- a/venv/share/python-wheels/chardet-3.0.4-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/colorama-0.3.7-py2.py3-none-any.whl b/venv/share/python-wheels/colorama-0.3.7-py2.py3-none-any.whl
deleted file mode 100644
index 103d6fe..0000000
--- a/venv/share/python-wheels/colorama-0.3.7-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/distlib-0.2.6-py2.py3-none-any.whl b/venv/share/python-wheels/distlib-0.2.6-py2.py3-none-any.whl
deleted file mode 100644
index fa7b7d7..0000000
--- a/venv/share/python-wheels/distlib-0.2.6-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/distro-1.0.1-py2.py3-none-any.whl b/venv/share/python-wheels/distro-1.0.1-py2.py3-none-any.whl
deleted file mode 100644
index d068513..0000000
--- a/venv/share/python-wheels/distro-1.0.1-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/html5lib-0.999999999-py2.py3-none-any.whl b/venv/share/python-wheels/html5lib-0.999999999-py2.py3-none-any.whl
deleted file mode 100644
index 5c23d9e..0000000
--- a/venv/share/python-wheels/html5lib-0.999999999-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/idna-2.6-py2.py3-none-any.whl b/venv/share/python-wheels/idna-2.6-py2.py3-none-any.whl
deleted file mode 100644
index 60adde4..0000000
--- a/venv/share/python-wheels/idna-2.6-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/ipaddress-0.0.0-py2.py3-none-any.whl b/venv/share/python-wheels/ipaddress-0.0.0-py2.py3-none-any.whl
deleted file mode 100644
index aee855f..0000000
--- a/venv/share/python-wheels/ipaddress-0.0.0-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/lockfile-0.12.2-py2.py3-none-any.whl b/venv/share/python-wheels/lockfile-0.12.2-py2.py3-none-any.whl
deleted file mode 100644
index b21d9c9..0000000
--- a/venv/share/python-wheels/lockfile-0.12.2-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/packaging-17.1-py2.py3-none-any.whl b/venv/share/python-wheels/packaging-17.1-py2.py3-none-any.whl
deleted file mode 100644
index 2e42a71..0000000
--- a/venv/share/python-wheels/packaging-17.1-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/pip-9.0.1-py2.py3-none-any.whl b/venv/share/python-wheels/pip-9.0.1-py2.py3-none-any.whl
deleted file mode 100644
index 6e2dfc9..0000000
--- a/venv/share/python-wheels/pip-9.0.1-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl b/venv/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl
deleted file mode 100644
index 82ce1db..0000000
--- a/venv/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/progress-1.2-py2.py3-none-any.whl b/venv/share/python-wheels/progress-1.2-py2.py3-none-any.whl
deleted file mode 100644
index 9f6b962..0000000
--- a/venv/share/python-wheels/progress-1.2-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl b/venv/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl
deleted file mode 100644
index 73a6fd0..0000000
--- a/venv/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl b/venv/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl
deleted file mode 100644
index 6219e07..0000000
--- a/venv/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/retrying-1.3.3-py2.py3-none-any.whl b/venv/share/python-wheels/retrying-1.3.3-py2.py3-none-any.whl
deleted file mode 100644
index e495b52..0000000
--- a/venv/share/python-wheels/retrying-1.3.3-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/setuptools-39.0.1-py2.py3-none-any.whl b/venv/share/python-wheels/setuptools-39.0.1-py2.py3-none-any.whl
deleted file mode 100644
index 55fc47e..0000000
--- a/venv/share/python-wheels/setuptools-39.0.1-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/six-1.11.0-py2.py3-none-any.whl b/venv/share/python-wheels/six-1.11.0-py2.py3-none-any.whl
deleted file mode 100644
index 5ec5729..0000000
--- a/venv/share/python-wheels/six-1.11.0-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl b/venv/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl
deleted file mode 100644
index 22331bd..0000000
--- a/venv/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/webencodings-0.5-py2.py3-none-any.whl b/venv/share/python-wheels/webencodings-0.5-py2.py3-none-any.whl
deleted file mode 100644
index 50ca5a8..0000000
--- a/venv/share/python-wheels/webencodings-0.5-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
diff --git a/venv/share/python-wheels/wheel-0.30.0-py2.py3-none-any.whl b/venv/share/python-wheels/wheel-0.30.0-py2.py3-none-any.whl
deleted file mode 100644
index 8a28235..0000000
--- a/venv/share/python-wheels/wheel-0.30.0-py2.py3-none-any.whl
+++ /dev/null
Binary files differ
