diff --git a/README.md b/README.md
index ce838fc..2ed6588 100644
--- a/README.md
+++ b/README.md
@@ -36,43 +36,13 @@ child.sendline('exit')
For more information see [examples](./examples) folder.
---
-## **REFACTOR**
+## REFACTOR
-The original wexpect has some structural weakness, which leads me to rewrite the whole code. The
-first variant of the new structure is delivered with [v3.2.0](https://pypi.org/project/wexpect/3.2.0/).
-Note, that the default is the old variant (`legacy_wexpect`), to use the new you need to set the
-`WEXPECT_SPAWN_CLASS` environment variable to `SpawnPipe` or `SpawnSocket`, which are the two new
-structured spawn class.
-
-### Old vs new
-
-But what is the difference between the old and new and what was the problem with the old?
-
-Generally, wexpect (both old and new) has three processes:
-
- - *host* is our original python script/program, which want to launch the child.
- - *console* is a process which started by the host, and launches the child. (This is a python script)
- - *child* is the process which want to be launced.
-
-The child and the console has a common Windows console, distict from the host.
-
-The `legacy_wexpect`'s console is a thin script, almost do nothing. It initializes the Windows's
-console, and monitors the host and child processes. The magic is done by the host process, which has
-the switchTo() and switchBack() functions, which (de-) attaches the *child-console* Windows-console.
-The host manipulates the child's console directly. This direct manipuation is the structural weakness.
-The following task/usecases are hard/impossibile:
-
- - thread-safe multiprocessing of the host.
- - logging (both console and host)
- - using in grapichal IDE or with pytest
- - This variant is highly depends on the pywin32 package.
-
-The new structure's console is a thik script. The console process do the major console manipulation,
-which is controlled by the host via socket (see SpawnSocket) or named-pipe (SpawnPipe). The host
-only process the except-loops.
+**Refactor has been finished!!!** The default spawn class is `SpawnPipe` from now. For more
+information read [history](https://wexpect.readthedocs.io/en/latest/history.html#refactor).
---
-## What is it?
+## What is wexpect?
Wexpect is a Python module for spawning child applications and controlling
them automatically. Wexpect can be used for automating interactive applications
@@ -87,17 +57,6 @@ Original Pexpect should work on any platform that supports the standard Python p
Wexpect works on Windows platforms. The Wexpect interface focuses on ease of use so that simple
tasks are easy.
-
-### History
-
-Wexpect is a one-file code developed at University of Washington. There are several
-[copy](https://gist.github.com/anthonyeden/8488763) and
-[reference](https://mediarealm.com.au/articles/python-pexpect-windows-wexpect/)
-to this code with very few (almost none) documentation nor integration.
-
-This repo tries to fix these limitations, with a few example code and pypi integration.
-
-
---
## Dev
@@ -117,55 +76,3 @@ See `after_test` section in [appveyor.yml](appveyor.yml) for more details.
The wexpect uses [pbr](https://docs.openstack.org/pbr/latest/) for managing releasing procedures.
The versioning is handled by the pbr. The *"master-version"* is the git tag. Pbr derives the package
version from the git tags.
-
-## Basic behaviour
-
-Let's go through the example code:
-
-```python
-import wexpect
-child = wexpect.spawn('cmd.exe')
-child.expect('>')
-child.sendline('ls')
-child.expect('>')
-print(child.before)
-child.sendline('exit')
-```
-
-### spawn()
-
-`child = wexpect.spawn('cmd.exe')`
-
-Call trace:
-
- - ::spawn
- - spawn_windows::__init__()
- - spawn_windows::_spawn()
- - Wtty::spawn()
- - Wtty::startChild()
- - win32process.CreateProcess()
-
-
-### expect()
-
-`child.expect('>')`
-
-Call trace:
-
- - spawn_windows::expect()
- - spawn_windows::expect_list()
- - spawn_windows::expect_loop()
- - spawn_windows::read_nonblocking()
- - Wtty::read_nonblocking()
- - Wtty::readConsoleToCursor()
- - Wtty::readConsole()
- - __consout.ReadConsoleOutputCharacter()
-
-
-### sendline()
-
-`child.sendline('ls')`
-
- - spawn_windows::sendline()
- - spawn_windows::send()
- - Wtty::write()
diff --git a/doc/source/history.rst b/doc/source/history.rst
index 4eb7b0f..1ffeb65 100644
--- a/doc/source/history.rst
+++ b/doc/source/history.rst
@@ -13,12 +13,9 @@ Refactor
The original wexpect was a monolite, one-file code, with several structural weaknesses. This leads
me to rewrite the whole code. The first variant of the new structure is delivered with
-`v3.2.0 `_.
-
-.. Note::
- The default is the old variant (:code:`legacy_wexpect`), to use the new you need to set the
- :code:`WEXPECT_SPAWN_CLASS` environment variable to :code:`SpawnPipe` or :code:`SpawnSocket`, which
- are the two new structured spawn classes.
+`v3.2.0 `_. (The default is the old variant
+(:code:`legacy_wexpect`) in v3.2.0. :code:`WEXPECT_SPAWN_CLASS` environment variable can choose the
+new-structured implementation.) Now :code:`SpawnPipe` is the default spawn class.
Old vs new
^^^^^^^^^^