diff --git a/README.md b/README.md
index 293f85af3ccb..e39aa84f2bcf 100644
--- a/README.md
+++ b/README.md
@@ -2,106 +2,92 @@
[![Build Status](https://travis-ci.org/kubevirt/kubevirt.svg?branch=master)](https://travis-ci.org/kubevirt/kubevirt)
[![Go Report Card](https://goreportcard.com/badge/github.com/kubevirt/kubevirt)](https://goreportcard.com/report/github.com/kubevirt/kubevirt)
+[![Licensed under Apache License version 2.0](https://img.shields.io/github/license/kubevirt/kubevirt.svg)](https://www.apache.org/licenses/LICENSE-2.0)
+
**KubeVirt** is a virtual machine management architecture built around
Kubernetes.
-The virtualization capabilities are layered on top of Kubernetes,
-existing functionality like scheduling and storage are however directly
-consumed from Kubernetes.
-KubeVirt aims at beeing able to provide management for fully featured
-Virtual Machines, thus VMs where you can tune every single parameter.
-These are usually the kind of VMs you find 'classic' datacenter
-virtualization environments.
+**Note:** KubeVirt is a heavy work in progress.
-## Getting Started
+# Virtualization extension for Kubernetes
-To get started right away please read out
-[Getting Started Guide](docs/getting-started.md).
+At it's core KubeVirt extends [Kubernetes][k8s] by adding
+additional virtualization resource types (especially the `VM` type) through
+[Kubernetes's third party resource concept][tpr].
+By using this mechanism, the Kubernetes API can be used to manage these `VM`
+resources alongside all other resources Kubernetes provides.
+The resources themselves are not enough to launch virtual machines.
+For this to happen the _functionality and business logic_ needs to be added to
+the cluster. The functionality is not added to Kubernetes itself, but rather
+added to a Kubernetes cluster by _running_ additional controllers and agents
+on an existing cluster.
-## Documentation
+The necessary controllers and agents are provided by KubeVirt.
-You can learn more about how KubeVirt is designed (and why it is that way),
-and learn more about the major components by taking a look at
-[our documentation](docs/):
-* [Glossary](docs/glossary.md) - Explaining the most important terms
-* [Architecture](docs/architecture.md) - High-level view on the architetcure
-* [Components](docs/components.md) - Detailed look at all components
+## Features
+
+As of today KubeVirt can be used to declarative
+ * Create a predefined VM
+ * Schedule a VM on a Kubernetes cluster
+ * Launch a VM
+ * Stop a VM
+ * Delete a VM
-## Technical Overview
+Example:
-Kubernetes allows for extensions to its architecture in the form of 3rd party
-resources: .
-KubeVirt represents virtual machines as 3rd party resources and manages changes
-to libvirt domains based on the state of those resources.
+[![asciicast](https://asciinema.org/a/96275.png)](https://asciinema.org/a/96275)
-This project provides a Vagrant setup with the requisite components already
-installed. To boot a vanilla kubernetes environment as base for kubevirt,
-simply type `vagrant up` from the root directory of the git tree, which can be
-found here:
-
+## Getting Started
-Once the Vagrant provisioning script has completed, run `./cluster/sync.sh` to
-build and deploy KubeVirt specific components to the Vagrant nodes.
+To get started right away please read out
+[Getting Started Guide](docs/getting-started.md).
-Note: KubeVirt is built in go. A properly configured go environment is
-therefore required. For best results, use this path:
-`$GOPATH/src/kubevirt.io/kubevirt/`
-### Associated resources
+## Documentation
- * Kubernetes
- * Libvirt
- * Cockpit
+You can learn more about how KubeVirt is designed (and why it is that way),
+and learn more about the major components by taking a look at
+[our documentation](docs/):
-### Project Components
+ * [Glossary](docs/glossary.md) - Explaining the most important terms
+ * [Architecture](docs/architecture.md) - High-level view on the architetcure
+ * [Components](docs/components.md) - Detailed look at all components
- * virt-api: This component provides a HTTP RESTfull entrypoint to manage
- the virtual machines within the cluster.
- * virt-controller: This component manages the state of each VM within the
- Kubernetes cluster.
- * virt-handler: This is a daemon that runs on each Kubernetes node. It is
- responsible for monitoring the state of VMs according to Kubernetes and
- ensuring the corresponding libvirt domain is booted or halted accordingly.
- * virt-launcher: This component is a place-holder, one per running VM. Its
- job is to remain running as long as the VM is defined. This simply prevents a
- crash-loop state.
- * ha-proxy: This daemon proxies connections from 192.168.200.2 to the running
- master node--making it possible to establish connections in a consistent
- manner.
-### Scripts
+## Related resources
+
+ * [Kubernetes][k8s]
+ * [Libvirt][libvirt]
+ * [Cockpit][cockpit]
- * `cluster/sync.sh`: After deploying a fresh vagrant environment, or after
- making changes to code in this tree, this script will sync the Pods and
- DaemonSets in the running KubeVirt environment with the state of this tree.
- * `cluster/kubectl.sh`: This is a wrapper around Kubernete's kubectl command so
- that it can be run directly from this checkout without logging into a node.
- * `cluster/sync_config.sh`: This script will contact the master node and
- collect its config and kubectl. It is called by sync.sh so does not generally
- need to be run separately.
- * `cluster/quickcheck.sh`: This script will run a series of tests to ensure
- the system is set up correctly.
## License
KubeVirt is distributed under the
[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt).
- Copyright 2016
+ Copyright 2016
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
- http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
+[//]: # (Reference links)
+ [k8s]: https://kubernetes.io
+ [tpr]: http://kubernetes.io/docs/user-guide/thirdpartyresources/
+ [ovirt]: https://www.ovirt.org
+ [cockpit]: https://cockpit-project.org/
+ [libvirt]: https://www.libvirt.org
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 000000000000..ccf475b81f99
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,51 @@
+## Technical Overview
+
+Kubernetes allows for extensions to its architecture in the form of 3rd party
+resources: .
+KubeVirt represents virtual machines as 3rd party resources and manages changes
+to libvirt domains based on the state of those resources.
+
+This project provides a Vagrant setup with the requisite components already
+installed. To boot a vanilla kubernetes environment as base for kubevirt,
+simply type `vagrant up` from the root directory of the git tree, which can be
+found here:
+
+
+
+Once the Vagrant provisioning script has completed, run `./cluster/sync.sh` to
+build and deploy KubeVirt specific components to the Vagrant nodes.
+
+Note: KubeVirt is built in go. A properly configured go environment is
+therefore required. For best results, use this path:
+`$GOPATH/src/kubevirt.io/kubevirt/`
+
+### Project Components
+
+ * virt-api: This component provides a HTTP RESTfull entrypoint to manage
+ the virtual machines within the cluster.
+ * virt-controller: This component manages the state of each VM within the
+ Kubernetes cluster.
+ * virt-handler: This is a daemon that runs on each Kubernetes node. It is
+ responsible for monitoring the state of VMs according to Kubernetes and
+ ensuring the corresponding libvirt domain is booted or halted accordingly.
+ * virt-launcher: This component is a place-holder, one per running VM. Its
+ job is to remain running as long as the VM is defined. This simply prevents a
+ crash-loop state.
+ * ha-proxy: This daemon proxies connections from 192.168.200.2 to the running
+ master node--making it possible to establish connections in a consistent
+ manner.
+
+### Scripts
+
+ * `cluster/sync.sh`: After deploying a fresh vagrant environment, or after
+ making changes to code in this tree, this script will sync the Pods and
+ DaemonSets in the running KubeVirt environment with the state of this tree.
+ * `cluster/kubectl.sh`: This is a wrapper around Kubernete's kubectl command so
+ that it can be run directly from this checkout without logging into a node.
+ * `cluster/sync_config.sh`: This script will contact the master node and
+ collect its config and kubectl. It is called by sync.sh so does not generally
+ need to be run separately.
+ * `cluster/quickcheck.sh`: This script will run a series of tests to ensure
+ the system is set up correctly.
+
+