diff --git a/docs/index.md b/docs/index.md
deleted file mode 100644
index f852eab46f..0000000000
--- a/docs/index.md
+++ /dev/null
@@ -1,62 +0,0 @@
-
-The AEA framework provides the tools for creating Autonomous Economic Agents (AEA).
-
-## What are AEAs?
-
-We define an autonomous economic agent or AEA as:
-
-> An intelligent agent acting on an owner's behalf, with limited or no interference, and whose goal is to generate economic value for its owner.
-
-
-
-An AEA represents an individual, organisation or object and looks after its interests. AEAs act independently of constant input from their owner and autonomously execute actions to achieve their prescribed goals. Their purpose is to create economic value for you, their owner, in clearly defined domains. AEAs have a wide range of application areas and we provide demo guides to highlight examples of their use cases.
-
-### What is not an AEA
-
-* Any agent: AEAs' purpose is to generate economic value in a multi-stakeholder environment with competing incentives between agents. They represent humans, organisations or objects.
-* APIs or sensors which do not have agency.
-* Smart contracts which do not display any proactiveness and are purely reactive to external requests (=contract calls and transactions).
-* Artificial General Intelligence (AGI). AEAs can have a very narrow, goal directed focus involving some economic gain and can have a very simple logic.
-
-
-
Note
-
In the rest of the documentation, unless specified otherwise, we use the terms AEA and agent interchangeably to refer to AEA as defined above.
-
-
-## What is the AEA Framework?
-
-The AEA framework is a development suite, currently implemented in Python, which equips you with an efficient and accessible set of tools for building and running AEAs. The framework is modular, extensible, and composable. It attempts to make agent development as straightforward an experience as possible, similar to web development using popular web frameworks.
-
-AEAs achieve their goals with the help of a search & discovery service for AEAs -- the simple Open Economic Framework (sOEF) -- a decentralized agent communication system -- the Agent Communication Network (ACN) -- and using Fetch.ai's blockchain as a financial settlement and commitment layer. AEAs can also be integrated with third-party blockchains, such as Ethereum.
-
-
-## Why build with the AEA Framework?
-
-The AEA framework provides the developer with a number of features, which combined cannot be found anywhere else:
-
-* The peer-to-peer agent communication network (ACN) allows your AEAs to interact with all other AEAs over the public internet.
-* The search and discovery system sOEF allows your AEAs to find other AEAs.
-* The AEA registry enables code sharing and re-use by providing a space in which AEAs or their individual components may be shared.
-* The framework's crypto and ledger APIs make it possible for AEAs to interact with blockchains.
-* The contract packages enable AEAs to interact with smart contracts in Fetch.ai and other third-party decentralised ledgers.
-
-
-## Next steps
-
-To get started developing your own AEA, check out the getting started section.
-
-To learn more about some of the distinctive characteristics of agent-oriented development, check out the guide on agent-oriented development.
-
-If you would like to develop an AEA in a language different to Python then check out our language agnostic AEA definition.
-
-If you want to run a demo, check out the demo guides.
-
-
-## Help us improve
-
-
-
Note
-
This developer documentation is a work in progress. If you spot any errors please open an issue on Github or contact us in the developer Discord channel.
-
-
-
diff --git a/docs/introduction/core-concepts/design.md b/docs/introduction/core-concepts/design.md
new file mode 100644
index 0000000000..a482e554e5
--- /dev/null
+++ b/docs/introduction/core-concepts/design.md
@@ -0,0 +1,39 @@
+The AEA framework development is guided by the following _8 design principles_:
+
+* **Accessibility**: ease of use.
+* **Modularity**: encourages module creation, sharing and reuse.
+* **Openness**: easily extensible with third-party libraries.
+* **Conciseness**: conceptually simple.
+* **Value-driven**: drives immediate value.
+* **Low entry barriers**: leverages existing programming languages and web protocols.
+* **Safety**: economically safe for the user.
+* **Goal-alignment**: seamless facilitation of users' preferences and goals.
+
+!!! info
+
+ The Framework is based around the concept of asynchronous message passing and uses an actor-like design paradigm. Messages are the primary means of communication between the Framework components as well as agents. In this respect, messages are directed towards a recipient which can be external or internal to the agent.
+
+The Framework aims to allow for modularity and reuse. The developer develops some packages or reuses those packages developed by others and then places them in context to each other in an AEA. The Framework then calls the code in the packages. Unlike libraries, it is the Framework that runs and calls the code by making use of inversion of control.
+
+!!! note
+
+ Currently, the Framework is implemented in the Python programming language. However, implementation in other languages is feasible too and importantly, it is fully interoperable with any language stack provided the protocols are implemented correctly.
+
+The framework offers auxiliary tools and services, including a command line interface (CLI), a protocol generator to generate protocols' code from their specifications, test tools, a registry for framework packages, and a desktop app to run finished agents. In its design, the framework makes no assumptions about the type of agents implemented with it.
+
+The Framework architecture has two distinctive parts:
+
+1. A **core** that is developed by the Fetch.ai team as well as external contributors.
+2. **Extensions** (i.e. packages) developed by any developer.
+
+The framework defines the _four main components_ which make up an agent:
+
+1. **Skills** encapsulate the logic that delivers economic value to the AEA. These are the core focus of the framework's extensibility as they implement business logic to deliver economic value for the AEA and its owner. Skills are treated like black boxes by the framework and can contain simple conditional logic or advanced reinforcement learning algorithms, for instance.
+
+2. **Connections** provide interfaces for the agent to connect with the outside world. These wrap SDKs or APIs and provide an interface to network, ledgers and other services. Where necessary, a connection is responsible for translating between the framework specific protocols and the external service or third-party protocol (e.g. HTTP).
+
+3. **Protocols** define agent-to-agent as well as component-to-component interactions within agents. As such, they include messages, which define the representation, serialization logic, how a message is encoded for transport, and, dialogues, which define rules over message sequences for a given protocol.
+
+4. **Contracts** wrap (access to) smart contracts for Fetch.ai and third-party decentralized ledgers. In particular, they provide wrappers around the API or ABI of a smart contract and its byte code.
+
+Together, these four components can be utilized to establish interaction protocols between entities.
diff --git a/mkdocs.yml b/mkdocs.yml
index 5f42ec3d1a..8c01d4b5bd 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -13,7 +13,9 @@ theme:
strict: true
nav:
- - Introduction: 'index.md'
+ - Introduction:
+ - AEA Framework core concepts:
+ - Framework design and architecture: 'introduction/core-concepts/design.md'
- Version: 'version.md'
- Upgrading: 'upgrading.md'
- Concepts: