diff --git a/aesh/src/main/java/org/aesh/AeshRuntimeRunner.java b/aesh/src/main/java/org/aesh/AeshRuntimeRunner.java
index 2ba021153..5b6ecf3c7 100644
--- a/aesh/src/main/java/org/aesh/AeshRuntimeRunner.java
+++ b/aesh/src/main/java/org/aesh/AeshRuntimeRunner.java
@@ -35,7 +35,7 @@
import org.aesh.command.validator.CommandValidatorException;
import org.aesh.command.validator.OptionValidatorException;
import org.aesh.console.ShellImpl;
-import org.aesh.readline.tty.terminal.TerminalConnection;
+import org.aesh.terminal.tty.TerminalConnection;
import org.aesh.terminal.Connection;
/**
diff --git a/aesh/src/main/java/org/aesh/command/CommandRuntime.java b/aesh/src/main/java/org/aesh/command/CommandRuntime.java
index 54ab779a8..d82a95705 100644
--- a/aesh/src/main/java/org/aesh/command/CommandRuntime.java
+++ b/aesh/src/main/java/org/aesh/command/CommandRuntime.java
@@ -29,7 +29,7 @@
import org.aesh.complete.AeshCompleteOperation;
import org.aesh.console.AeshContext;
import org.aesh.command.registry.CommandRegistry;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.Parser;
/**
* An Aesh Command processor.
diff --git a/aesh/src/main/java/org/aesh/command/completer/CompleterInvocation.java b/aesh/src/main/java/org/aesh/command/completer/CompleterInvocation.java
index f82c4b279..ef84592cf 100644
--- a/aesh/src/main/java/org/aesh/command/completer/CompleterInvocation.java
+++ b/aesh/src/main/java/org/aesh/command/completer/CompleterInvocation.java
@@ -21,7 +21,7 @@
import org.aesh.console.AeshContext;
import org.aesh.command.Command;
-import org.aesh.readline.terminal.formatting.TerminalString;
+import org.aesh.terminal.formatting.TerminalString;
import java.util.Collection;
import java.util.List;
diff --git a/aesh/src/main/java/org/aesh/command/export/ExportCompletion.java b/aesh/src/main/java/org/aesh/command/export/ExportCompletion.java
index a18f7d063..6f7da0c49 100644
--- a/aesh/src/main/java/org/aesh/command/export/ExportCompletion.java
+++ b/aesh/src/main/java/org/aesh/command/export/ExportCompletion.java
@@ -22,7 +22,7 @@
import org.aesh.parser.LineParser;
import org.aesh.readline.completion.CompleteOperation;
import org.aesh.readline.completion.Completion;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.Parser;
/**
* @author Ståle W. Pedersen
diff --git a/aesh/src/main/java/org/aesh/command/export/ExportManager.java b/aesh/src/main/java/org/aesh/command/export/ExportManager.java
index fbc16efa2..94e64bea9 100644
--- a/aesh/src/main/java/org/aesh/command/export/ExportManager.java
+++ b/aesh/src/main/java/org/aesh/command/export/ExportManager.java
@@ -19,7 +19,7 @@
*/
package org.aesh.command.export;
-import org.aesh.readline.util.LoggerUtil;
+import org.aesh.terminal.utils.LoggerUtil;
import org.aesh.terminal.utils.Config;
import java.io.BufferedReader;
diff --git a/aesh/src/main/java/org/aesh/command/impl/Executions.java b/aesh/src/main/java/org/aesh/command/impl/Executions.java
index 381c1643a..c1209560c 100644
--- a/aesh/src/main/java/org/aesh/command/impl/Executions.java
+++ b/aesh/src/main/java/org/aesh/command/impl/Executions.java
@@ -58,7 +58,7 @@
import org.aesh.parser.ParsedLine;
import org.aesh.console.AeshContext;
import org.aesh.readline.Prompt;
-import org.aesh.readline.terminal.formatting.TerminalString;
+import org.aesh.terminal.formatting.TerminalString;
import org.aesh.selector.Selector;
import java.io.IOException;
diff --git a/aesh/src/main/java/org/aesh/command/impl/completer/CompleterData.java b/aesh/src/main/java/org/aesh/command/impl/completer/CompleterData.java
index 0d5b542d3..7a5844b72 100644
--- a/aesh/src/main/java/org/aesh/command/impl/completer/CompleterData.java
+++ b/aesh/src/main/java/org/aesh/command/impl/completer/CompleterData.java
@@ -23,7 +23,7 @@
import org.aesh.console.AeshContext;
import org.aesh.command.Command;
import org.aesh.command.completer.CompleterInvocation;
-import org.aesh.readline.terminal.formatting.TerminalString;
+import org.aesh.terminal.formatting.TerminalString;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/aesh/src/main/java/org/aesh/command/impl/completer/DefaultValueOptionCompleter.java b/aesh/src/main/java/org/aesh/command/impl/completer/DefaultValueOptionCompleter.java
index dfec30672..fbb292d98 100644
--- a/aesh/src/main/java/org/aesh/command/impl/completer/DefaultValueOptionCompleter.java
+++ b/aesh/src/main/java/org/aesh/command/impl/completer/DefaultValueOptionCompleter.java
@@ -22,7 +22,7 @@
import org.aesh.command.completer.CompleterInvocation;
import org.aesh.command.completer.OptionCompleter;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.Parser;
import java.util.List;
diff --git a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommand.java b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommand.java
index 045f85bab..995d90a60 100644
--- a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommand.java
+++ b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommand.java
@@ -32,8 +32,8 @@
import org.aesh.command.populator.CommandPopulator;
import org.aesh.command.result.ResultHandler;
import org.aesh.command.validator.CommandValidator;
-import org.aesh.readline.terminal.formatting.TerminalString;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.formatting.TerminalString;
+import org.aesh.terminal.utils.Parser;
import org.aesh.selector.SelectorType;
import org.aesh.terminal.utils.Config;
diff --git a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOption.java b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOption.java
index 18fc5ba9a..e9397b1fb 100644
--- a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOption.java
+++ b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOption.java
@@ -34,7 +34,7 @@
import org.aesh.io.Resource;
import org.aesh.console.AeshContext;
import org.aesh.io.PipelineResource;
-import org.aesh.readline.terminal.formatting.TerminalString;
+import org.aesh.terminal.formatting.TerminalString;
import org.aesh.selector.SelectorType;
import org.aesh.terminal.utils.ANSI;
import org.aesh.util.PropertiesLookup;
diff --git a/aesh/src/main/java/org/aesh/command/impl/invocation/AeshCommandInvocation.java b/aesh/src/main/java/org/aesh/command/impl/invocation/AeshCommandInvocation.java
index 42615e476..42b054acb 100644
--- a/aesh/src/main/java/org/aesh/command/impl/invocation/AeshCommandInvocation.java
+++ b/aesh/src/main/java/org/aesh/command/impl/invocation/AeshCommandInvocation.java
@@ -40,7 +40,7 @@
import org.aesh.console.Console;
import org.aesh.console.ReadlineConsole;
import org.aesh.readline.Prompt;
-import org.aesh.readline.action.KeyAction;
+import org.aesh.terminal.KeyAction;
/**
* @author Ståle W. Pedersen
diff --git a/aesh/src/main/java/org/aesh/command/impl/invocation/DefaultCommandInvocation.java b/aesh/src/main/java/org/aesh/command/impl/invocation/DefaultCommandInvocation.java
index 2cca7757a..b82acaa8a 100644
--- a/aesh/src/main/java/org/aesh/command/impl/invocation/DefaultCommandInvocation.java
+++ b/aesh/src/main/java/org/aesh/command/impl/invocation/DefaultCommandInvocation.java
@@ -35,9 +35,9 @@
import org.aesh.command.validator.CommandValidatorException;
import org.aesh.command.validator.OptionValidatorException;
import org.aesh.readline.Prompt;
-import org.aesh.readline.action.KeyAction;
-import org.aesh.readline.terminal.Key;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.KeyAction;
+import org.aesh.terminal.Key;
+import org.aesh.terminal.utils.Parser;
import org.aesh.terminal.tty.Size;
import org.aesh.terminal.utils.ANSI;
diff --git a/aesh/src/main/java/org/aesh/command/impl/operator/OutputDelegate.java b/aesh/src/main/java/org/aesh/command/impl/operator/OutputDelegate.java
index a00c86686..f147741d7 100644
--- a/aesh/src/main/java/org/aesh/command/impl/operator/OutputDelegate.java
+++ b/aesh/src/main/java/org/aesh/command/impl/operator/OutputDelegate.java
@@ -21,7 +21,7 @@
import java.io.BufferedWriter;
import java.io.IOException;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.Parser;
/**
*
diff --git a/aesh/src/main/java/org/aesh/command/impl/parser/AeshCommandLineCompletionParser.java b/aesh/src/main/java/org/aesh/command/impl/parser/AeshCommandLineCompletionParser.java
index e539ce9e2..de2f498bb 100644
--- a/aesh/src/main/java/org/aesh/command/impl/parser/AeshCommandLineCompletionParser.java
+++ b/aesh/src/main/java/org/aesh/command/impl/parser/AeshCommandLineCompletionParser.java
@@ -34,8 +34,8 @@
import org.aesh.parser.ParsedWord;
import org.aesh.parser.ParserStatus;
import org.aesh.console.AeshContext;
-import org.aesh.readline.terminal.formatting.TerminalString;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.formatting.TerminalString;
+import org.aesh.terminal.utils.Parser;
import org.aesh.selector.SelectorType;
import java.util.List;
diff --git a/aesh/src/main/java/org/aesh/command/impl/parser/AeshOptionParser.java b/aesh/src/main/java/org/aesh/command/impl/parser/AeshOptionParser.java
index d129ea28e..c4e329685 100644
--- a/aesh/src/main/java/org/aesh/command/impl/parser/AeshOptionParser.java
+++ b/aesh/src/main/java/org/aesh/command/impl/parser/AeshOptionParser.java
@@ -24,7 +24,7 @@
import org.aesh.command.parser.OptionParser;
import org.aesh.command.parser.OptionParserException;
import org.aesh.parser.ParsedLineIterator;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.Parser;
/**
* @author Ståle W. Pedersen
diff --git a/aesh/src/main/java/org/aesh/command/impl/renderer/NullOptionRenderer.java b/aesh/src/main/java/org/aesh/command/impl/renderer/NullOptionRenderer.java
index 7d5585242..6e49f10ee 100644
--- a/aesh/src/main/java/org/aesh/command/impl/renderer/NullOptionRenderer.java
+++ b/aesh/src/main/java/org/aesh/command/impl/renderer/NullOptionRenderer.java
@@ -20,8 +20,8 @@
package org.aesh.command.impl.renderer;
import org.aesh.command.renderer.OptionRenderer;
-import org.aesh.readline.terminal.formatting.TerminalColor;
-import org.aesh.readline.terminal.formatting.TerminalTextStyle;
+import org.aesh.terminal.formatting.TerminalColor;
+import org.aesh.terminal.formatting.TerminalTextStyle;
/**
* @author Ståle W. Pedersen
diff --git a/aesh/src/main/java/org/aesh/command/impl/shell/ShellOutputDelegate.java b/aesh/src/main/java/org/aesh/command/impl/shell/ShellOutputDelegate.java
index 6e3d45c3f..7ab510bd3 100644
--- a/aesh/src/main/java/org/aesh/command/impl/shell/ShellOutputDelegate.java
+++ b/aesh/src/main/java/org/aesh/command/impl/shell/ShellOutputDelegate.java
@@ -3,9 +3,9 @@
import org.aesh.command.impl.operator.OutputDelegate;
import org.aesh.command.shell.Shell;
import org.aesh.readline.Prompt;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.terminal.tty.Size;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.Parser;
import org.aesh.terminal.utils.Config;
import java.util.concurrent.TimeUnit;
diff --git a/aesh/src/main/java/org/aesh/command/invocation/CommandInvocation.java b/aesh/src/main/java/org/aesh/command/invocation/CommandInvocation.java
index 7a3ccb713..155e82584 100644
--- a/aesh/src/main/java/org/aesh/command/invocation/CommandInvocation.java
+++ b/aesh/src/main/java/org/aesh/command/invocation/CommandInvocation.java
@@ -33,7 +33,7 @@
import org.aesh.command.CommandException;
import org.aesh.command.CommandNotFoundException;
import org.aesh.readline.Prompt;
-import org.aesh.readline.action.KeyAction;
+import org.aesh.terminal.KeyAction;
/**
* A CommandInvocation is the value object passed to a Command when it is executed.
diff --git a/aesh/src/main/java/org/aesh/command/man/AeshFileDisplayer.java b/aesh/src/main/java/org/aesh/command/man/AeshFileDisplayer.java
index 814ac291b..d3f02b2f6 100644
--- a/aesh/src/main/java/org/aesh/command/man/AeshFileDisplayer.java
+++ b/aesh/src/main/java/org/aesh/command/man/AeshFileDisplayer.java
@@ -22,11 +22,11 @@
import org.aesh.command.shell.Shell;
import org.aesh.command.Command;
import org.aesh.command.invocation.CommandInvocation;
-import org.aesh.readline.action.KeyAction;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.KeyAction;
+import org.aesh.terminal.Key;
import org.aesh.terminal.utils.ANSI;
import org.aesh.terminal.utils.Config;
-import org.aesh.readline.util.LoggerUtil;
+import org.aesh.terminal.utils.LoggerUtil;
import java.io.IOException;
import java.util.List;
diff --git a/aesh/src/main/java/org/aesh/command/man/parser/ManParameter.java b/aesh/src/main/java/org/aesh/command/man/parser/ManParameter.java
index 616c9fcbd..d8db546c8 100644
--- a/aesh/src/main/java/org/aesh/command/man/parser/ManParameter.java
+++ b/aesh/src/main/java/org/aesh/command/man/parser/ManParameter.java
@@ -20,7 +20,7 @@
package org.aesh.command.man.parser;
import org.aesh.terminal.utils.Config;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.Parser;
import java.util.ArrayList;
import java.util.List;
diff --git a/aesh/src/main/java/org/aesh/command/map/MapProcessedCommand.java b/aesh/src/main/java/org/aesh/command/map/MapProcessedCommand.java
index 939f59eae..549c4ca27 100644
--- a/aesh/src/main/java/org/aesh/command/map/MapProcessedCommand.java
+++ b/aesh/src/main/java/org/aesh/command/map/MapProcessedCommand.java
@@ -30,7 +30,7 @@
import org.aesh.command.populator.CommandPopulator;
import org.aesh.command.result.ResultHandler;
import org.aesh.command.validator.CommandValidator;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.Parser;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/aesh/src/main/java/org/aesh/command/renderer/OptionRenderer.java b/aesh/src/main/java/org/aesh/command/renderer/OptionRenderer.java
index 0a0863e13..eed1f32ec 100644
--- a/aesh/src/main/java/org/aesh/command/renderer/OptionRenderer.java
+++ b/aesh/src/main/java/org/aesh/command/renderer/OptionRenderer.java
@@ -19,8 +19,8 @@
*/
package org.aesh.command.renderer;
-import org.aesh.readline.terminal.formatting.TerminalColor;
-import org.aesh.readline.terminal.formatting.TerminalTextStyle;
+import org.aesh.terminal.formatting.TerminalColor;
+import org.aesh.terminal.formatting.TerminalTextStyle;
/**
* @author Ståle W. Pedersen
diff --git a/aesh/src/main/java/org/aesh/command/settings/SettingsBuilder.java b/aesh/src/main/java/org/aesh/command/settings/SettingsBuilder.java
index 7f0327f1c..d9574f9c0 100644
--- a/aesh/src/main/java/org/aesh/command/settings/SettingsBuilder.java
+++ b/aesh/src/main/java/org/aesh/command/settings/SettingsBuilder.java
@@ -42,7 +42,7 @@
import org.aesh.readline.alias.AliasManager;
import org.aesh.readline.editing.EditMode;
import org.aesh.terminal.Connection;
-import org.aesh.readline.util.LoggerUtil;
+import org.aesh.terminal.utils.LoggerUtil;
import java.io.File;
import java.io.InputStream;
diff --git a/aesh/src/main/java/org/aesh/command/shell/Shell.java b/aesh/src/main/java/org/aesh/command/shell/Shell.java
index 962ae5345..367a64da0 100644
--- a/aesh/src/main/java/org/aesh/command/shell/Shell.java
+++ b/aesh/src/main/java/org/aesh/command/shell/Shell.java
@@ -21,7 +21,7 @@
package org.aesh.command.shell;
import org.aesh.readline.Prompt;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.terminal.tty.Size;
import java.util.concurrent.TimeUnit;
diff --git a/aesh/src/main/java/org/aesh/console/PagingSupport.java b/aesh/src/main/java/org/aesh/console/PagingSupport.java
index 8d8603ce2..ab9a3d8de 100644
--- a/aesh/src/main/java/org/aesh/console/PagingSupport.java
+++ b/aesh/src/main/java/org/aesh/console/PagingSupport.java
@@ -32,9 +32,9 @@
import org.aesh.readline.action.ActionDecoder;
import org.aesh.readline.history.History;
import org.aesh.readline.history.InMemoryHistory;
-import org.aesh.readline.terminal.Key;
-import org.aesh.readline.terminal.impl.WinSysTerminal;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.Key;
+import org.aesh.terminal.tty.impl.WinSysTerminal;
+import org.aesh.terminal.utils.Parser;
import org.aesh.terminal.Attributes;
import org.aesh.terminal.Connection;
import org.aesh.terminal.tty.Signal;
diff --git a/aesh/src/main/java/org/aesh/console/Process.java b/aesh/src/main/java/org/aesh/console/Process.java
index 4641c8fc6..d8397c49e 100644
--- a/aesh/src/main/java/org/aesh/console/Process.java
+++ b/aesh/src/main/java/org/aesh/console/Process.java
@@ -29,7 +29,7 @@
import org.aesh.terminal.utils.Config;
import org.aesh.command.validator.CommandValidatorException;
import org.aesh.terminal.Connection;
-import org.aesh.readline.util.LoggerUtil;
+import org.aesh.terminal.utils.LoggerUtil;
import java.util.function.Consumer;
import java.util.logging.Level;
diff --git a/aesh/src/main/java/org/aesh/console/ReadlineConsole.java b/aesh/src/main/java/org/aesh/console/ReadlineConsole.java
index 2ec8dda6d..685f200f9 100644
--- a/aesh/src/main/java/org/aesh/console/ReadlineConsole.java
+++ b/aesh/src/main/java/org/aesh/console/ReadlineConsole.java
@@ -65,9 +65,9 @@
import org.aesh.readline.history.FileHistory;
import org.aesh.readline.history.History;
import org.aesh.readline.history.InMemoryHistory;
-import org.aesh.readline.tty.terminal.TerminalConnection;
+import org.aesh.terminal.tty.TerminalConnection;
import org.aesh.readline.util.FileAccessPermission;
-import org.aesh.readline.util.LoggerUtil;
+import org.aesh.terminal.utils.LoggerUtil;
import org.aesh.terminal.Attributes;
import org.aesh.terminal.Connection;
import org.aesh.terminal.tty.Signal;
diff --git a/aesh/src/main/java/org/aesh/console/ShellImpl.java b/aesh/src/main/java/org/aesh/console/ShellImpl.java
index 44ef9c8ec..1abab184c 100644
--- a/aesh/src/main/java/org/aesh/console/ShellImpl.java
+++ b/aesh/src/main/java/org/aesh/console/ShellImpl.java
@@ -23,7 +23,7 @@
import org.aesh.readline.Prompt;
import org.aesh.readline.Readline;
import org.aesh.readline.action.ActionDecoder;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.terminal.Connection;
import org.aesh.terminal.tty.Capability;
import org.aesh.terminal.tty.Size;
diff --git a/aesh/src/main/java/org/aesh/graphics/AeshGraphics.java b/aesh/src/main/java/org/aesh/graphics/AeshGraphics.java
index 1a7690768..aa30b00b2 100644
--- a/aesh/src/main/java/org/aesh/graphics/AeshGraphics.java
+++ b/aesh/src/main/java/org/aesh/graphics/AeshGraphics.java
@@ -19,8 +19,8 @@
*/
package org.aesh.graphics;
-import org.aesh.readline.terminal.formatting.TerminalColor;
-import org.aesh.readline.terminal.formatting.TerminalTextStyle;
+import org.aesh.terminal.formatting.TerminalColor;
+import org.aesh.terminal.formatting.TerminalTextStyle;
import org.aesh.terminal.Connection;
import org.aesh.terminal.tty.Capability;
import org.aesh.terminal.tty.Size;
diff --git a/aesh/src/main/java/org/aesh/graphics/Graphics.java b/aesh/src/main/java/org/aesh/graphics/Graphics.java
index 13f861f82..a3be6666f 100644
--- a/aesh/src/main/java/org/aesh/graphics/Graphics.java
+++ b/aesh/src/main/java/org/aesh/graphics/Graphics.java
@@ -19,8 +19,8 @@
*/
package org.aesh.graphics;
-import org.aesh.readline.terminal.formatting.TerminalColor;
-import org.aesh.readline.terminal.formatting.TerminalTextStyle;
+import org.aesh.terminal.formatting.TerminalColor;
+import org.aesh.terminal.formatting.TerminalTextStyle;
/**
* Simple Terminal Graphics API
diff --git a/aesh/src/main/java/org/aesh/impl/util/FileLister.java b/aesh/src/main/java/org/aesh/impl/util/FileLister.java
index 4ad83f93d..c193592ba 100644
--- a/aesh/src/main/java/org/aesh/impl/util/FileLister.java
+++ b/aesh/src/main/java/org/aesh/impl/util/FileLister.java
@@ -26,8 +26,8 @@
import org.aesh.command.impl.converter.FileConverter;
import org.aesh.io.Resource;
-import org.aesh.readline.util.LoggerUtil;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.LoggerUtil;
+import org.aesh.terminal.utils.Parser;
import org.aesh.terminal.utils.Config;
/**
diff --git a/aesh/src/main/java/org/aesh/selector/MultiSelect.java b/aesh/src/main/java/org/aesh/selector/MultiSelect.java
index d475af3b0..7d99e1073 100644
--- a/aesh/src/main/java/org/aesh/selector/MultiSelect.java
+++ b/aesh/src/main/java/org/aesh/selector/MultiSelect.java
@@ -20,7 +20,7 @@
package org.aesh.selector;
import org.aesh.command.shell.Shell;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.terminal.utils.ANSI;
import org.aesh.terminal.utils.Config;
diff --git a/aesh/src/main/java/org/aesh/selector/Selector.java b/aesh/src/main/java/org/aesh/selector/Selector.java
index cfde9a7f0..46b5f9a5d 100644
--- a/aesh/src/main/java/org/aesh/selector/Selector.java
+++ b/aesh/src/main/java/org/aesh/selector/Selector.java
@@ -21,7 +21,7 @@
import org.aesh.command.shell.Shell;
import org.aesh.readline.Prompt;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.terminal.utils.ANSI;
import java.util.ArrayList;
diff --git a/aesh/src/test/java/org/aesh/command/AeshCommandInputTest.java b/aesh/src/test/java/org/aesh/command/AeshCommandInputTest.java
index 09ff95200..12ce999df 100644
--- a/aesh/src/test/java/org/aesh/command/AeshCommandInputTest.java
+++ b/aesh/src/test/java/org/aesh/command/AeshCommandInputTest.java
@@ -13,8 +13,8 @@
import org.aesh.command.settings.SettingsBuilder;
import org.aesh.command.validator.ValidatorInvocation;
import org.aesh.console.ReadlineConsole;
-import org.aesh.readline.action.KeyAction;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.KeyAction;
+import org.aesh.terminal.Key;
import org.aesh.terminal.utils.Config;
import org.aesh.tty.TestConnection;
import org.junit.Test;
diff --git a/aesh/src/test/java/org/aesh/command/activator/AeshCommandOptionActivatorTest.java b/aesh/src/test/java/org/aesh/command/activator/AeshCommandOptionActivatorTest.java
index 83e646bd4..5cd2913d4 100644
--- a/aesh/src/test/java/org/aesh/command/activator/AeshCommandOptionActivatorTest.java
+++ b/aesh/src/test/java/org/aesh/command/activator/AeshCommandOptionActivatorTest.java
@@ -35,7 +35,7 @@
import org.aesh.command.settings.SettingsBuilder;
import org.aesh.command.validator.ValidatorInvocation;
import org.aesh.console.ReadlineConsole;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.tty.TestConnection;
import org.junit.Test;
diff --git a/aesh/src/test/java/org/aesh/command/completer/AeshCommandCompletionTest.java b/aesh/src/test/java/org/aesh/command/completer/AeshCommandCompletionTest.java
index 8a95966cc..73d3da9bc 100644
--- a/aesh/src/test/java/org/aesh/command/completer/AeshCommandCompletionTest.java
+++ b/aesh/src/test/java/org/aesh/command/completer/AeshCommandCompletionTest.java
@@ -42,11 +42,11 @@
import org.aesh.command.validator.ValidatorInvocation;
import org.aesh.readline.Prompt;
import org.aesh.console.ReadlineConsole;
-import org.aesh.readline.terminal.Key;
-import org.aesh.readline.terminal.formatting.CharacterType;
-import org.aesh.readline.terminal.formatting.Color;
-import org.aesh.readline.terminal.formatting.TerminalColor;
-import org.aesh.readline.terminal.formatting.TerminalTextStyle;
+import org.aesh.terminal.Key;
+import org.aesh.terminal.formatting.CharacterType;
+import org.aesh.terminal.formatting.Color;
+import org.aesh.terminal.formatting.TerminalColor;
+import org.aesh.terminal.formatting.TerminalTextStyle;
import org.aesh.terminal.tty.Size;
import org.aesh.tty.TestConnection;
import org.aesh.terminal.utils.Config;
diff --git a/aesh/src/test/java/org/aesh/command/completer/AeshCommandOperatorCompletionTest.java b/aesh/src/test/java/org/aesh/command/completer/AeshCommandOperatorCompletionTest.java
index c2acacd3f..881616762 100644
--- a/aesh/src/test/java/org/aesh/command/completer/AeshCommandOperatorCompletionTest.java
+++ b/aesh/src/test/java/org/aesh/command/completer/AeshCommandOperatorCompletionTest.java
@@ -18,7 +18,7 @@
import org.aesh.command.validator.ValidatorInvocation;
import org.aesh.io.FileResource;
import org.aesh.console.ReadlineConsole;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.terminal.tty.Size;
import org.aesh.tty.TestConnection;
import org.aesh.terminal.utils.Config;
diff --git a/aesh/src/test/java/org/aesh/command/completer/CompletionConsoleTest.java b/aesh/src/test/java/org/aesh/command/completer/CompletionConsoleTest.java
index 1062eb704..2202059d8 100644
--- a/aesh/src/test/java/org/aesh/command/completer/CompletionConsoleTest.java
+++ b/aesh/src/test/java/org/aesh/command/completer/CompletionConsoleTest.java
@@ -40,7 +40,7 @@
import org.aesh.command.Command;
import org.aesh.console.ReadlineConsole;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.tty.TestConnection;
import org.aesh.terminal.utils.Config;
import org.junit.Test;
diff --git a/aesh/src/test/java/org/aesh/command/completer/FileOptionCompleterTest.java b/aesh/src/test/java/org/aesh/command/completer/FileOptionCompleterTest.java
index 638a72add..43dbe334d 100644
--- a/aesh/src/test/java/org/aesh/command/completer/FileOptionCompleterTest.java
+++ b/aesh/src/test/java/org/aesh/command/completer/FileOptionCompleterTest.java
@@ -28,7 +28,7 @@
import org.aesh.command.impl.completer.FileOptionCompleter;
import org.aesh.console.AeshContext;
import org.aesh.console.DefaultAeshContext;
-import org.aesh.readline.terminal.formatting.TerminalString;
+import org.aesh.terminal.formatting.TerminalString;
import org.aesh.terminal.utils.Config;
import org.aesh.io.FileResource;
import org.junit.Test;
diff --git a/aesh/src/test/java/org/aesh/command/export/ExportCommandTest.java b/aesh/src/test/java/org/aesh/command/export/ExportCommandTest.java
index ccfc015c2..237485724 100644
--- a/aesh/src/test/java/org/aesh/command/export/ExportCommandTest.java
+++ b/aesh/src/test/java/org/aesh/command/export/ExportCommandTest.java
@@ -35,7 +35,7 @@
import org.aesh.command.settings.SettingsBuilder;
import org.aesh.command.validator.ValidatorInvocation;
import org.aesh.readline.editing.EditMode;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.terminal.utils.Config;
import org.aesh.console.ReadlineConsole;
import org.aesh.tty.TestConnection;
diff --git a/aesh/src/test/java/org/aesh/command/invocation/AeshCommandInvocationServiceTest.java b/aesh/src/test/java/org/aesh/command/invocation/AeshCommandInvocationServiceTest.java
index 792b7c5cc..21760c946 100644
--- a/aesh/src/test/java/org/aesh/command/invocation/AeshCommandInvocationServiceTest.java
+++ b/aesh/src/test/java/org/aesh/command/invocation/AeshCommandInvocationServiceTest.java
@@ -32,7 +32,7 @@
import org.aesh.command.settings.Settings;
import org.aesh.command.settings.SettingsBuilder;
import org.aesh.readline.Prompt;
-import org.aesh.readline.action.KeyAction;
+import org.aesh.terminal.KeyAction;
import org.aesh.terminal.utils.Config;
import org.aesh.command.CommandDefinition;
import org.aesh.command.registry.CommandRegistry;
diff --git a/aesh/src/test/java/org/aesh/command/map/MapCommandTest.java b/aesh/src/test/java/org/aesh/command/map/MapCommandTest.java
index 5baaf6c37..28f1349e5 100644
--- a/aesh/src/test/java/org/aesh/command/map/MapCommandTest.java
+++ b/aesh/src/test/java/org/aesh/command/map/MapCommandTest.java
@@ -36,7 +36,7 @@
import org.aesh.command.settings.SettingsBuilder;
import org.aesh.readline.Prompt;
import org.aesh.console.ReadlineConsole;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.tty.TestConnection;
import org.aesh.terminal.utils.Config;
import org.junit.Test;
diff --git a/aesh/src/test/java/org/aesh/command/registry/AeshCommandRegistryTest.java b/aesh/src/test/java/org/aesh/command/registry/AeshCommandRegistryTest.java
index 0d3828b3a..7a21fa7f1 100644
--- a/aesh/src/test/java/org/aesh/command/registry/AeshCommandRegistryTest.java
+++ b/aesh/src/test/java/org/aesh/command/registry/AeshCommandRegistryTest.java
@@ -38,7 +38,7 @@
import org.aesh.console.ReadlineConsole;
import org.aesh.readline.completion.CompleteOperation;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.tty.TestConnection;
import org.junit.Test;
diff --git a/aesh/src/test/java/org/aesh/command/registry/MutableCommandRegistryTest.java b/aesh/src/test/java/org/aesh/command/registry/MutableCommandRegistryTest.java
index af2f3665e..6eb3b3b11 100644
--- a/aesh/src/test/java/org/aesh/command/registry/MutableCommandRegistryTest.java
+++ b/aesh/src/test/java/org/aesh/command/registry/MutableCommandRegistryTest.java
@@ -29,7 +29,7 @@
import org.aesh.command.impl.registry.MutableCommandRegistryImpl;
import org.aesh.parser.LineParser;
import org.aesh.parser.ParsedLine;
-import org.aesh.readline.terminal.formatting.TerminalString;
+import org.aesh.terminal.formatting.TerminalString;
import org.junit.Test;
import org.aesh.command.CommandException;
diff --git a/aesh/src/test/java/org/aesh/console/AeshConnectionClosedTest.java b/aesh/src/test/java/org/aesh/console/AeshConnectionClosedTest.java
index 8f898c76d..382d05734 100644
--- a/aesh/src/test/java/org/aesh/console/AeshConnectionClosedTest.java
+++ b/aesh/src/test/java/org/aesh/console/AeshConnectionClosedTest.java
@@ -32,7 +32,7 @@
import org.aesh.command.settings.Settings;
import org.aesh.command.settings.SettingsBuilder;
import org.aesh.command.validator.ValidatorInvocation;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.terminal.utils.Config;
import org.aesh.tty.TestConnection;
import org.junit.Test;
diff --git a/aesh/src/test/java/org/aesh/tty/TestConnection.java b/aesh/src/test/java/org/aesh/tty/TestConnection.java
index 7f77cf22d..a2ec0ac65 100644
--- a/aesh/src/test/java/org/aesh/tty/TestConnection.java
+++ b/aesh/src/test/java/org/aesh/tty/TestConnection.java
@@ -20,7 +20,7 @@
package org.aesh.tty;
-import org.aesh.readline.terminal.Key;
+import org.aesh.terminal.Key;
import org.aesh.terminal.Attributes;
import org.aesh.terminal.BaseDevice;
import org.aesh.terminal.Connection;
@@ -28,7 +28,7 @@
import org.aesh.terminal.tty.Capability;
import org.aesh.terminal.tty.Signal;
import org.aesh.terminal.tty.Size;
-import org.aesh.readline.util.Parser;
+import org.aesh.terminal.utils.Parser;
import java.nio.charset.Charset;
import java.util.Arrays;
diff --git a/examples/src/main/java/examples/AeshGraphicsExample.java b/examples/src/main/java/examples/AeshGraphicsExample.java
index 0c3ff568c..8c722a56e 100644
--- a/examples/src/main/java/examples/AeshGraphicsExample.java
+++ b/examples/src/main/java/examples/AeshGraphicsExample.java
@@ -37,10 +37,10 @@
import org.aesh.graphics.GraphicsConfiguration;
import org.aesh.readline.Prompt;
import org.aesh.console.ReadlineConsole;
-import org.aesh.readline.terminal.Key;
-import org.aesh.readline.terminal.formatting.Color;
-import org.aesh.readline.terminal.formatting.TerminalColor;
-import org.aesh.readline.tty.terminal.TerminalConnection;
+import org.aesh.terminal.Key;
+import org.aesh.terminal.formatting.Color;
+import org.aesh.terminal.formatting.TerminalColor;
+import org.aesh.terminal.tty.TerminalConnection;
import org.aesh.terminal.Connection;
import java.io.IOException;
diff --git a/examples/src/main/java/examples/Example.java b/examples/src/main/java/examples/Example.java
index 83e3cfc85..86c13da10 100644
--- a/examples/src/main/java/examples/Example.java
+++ b/examples/src/main/java/examples/Example.java
@@ -54,13 +54,13 @@
import org.aesh.console.AeshContext;
import org.aesh.readline.Prompt;
import org.aesh.console.ReadlineConsole;
-import org.aesh.readline.action.KeyAction;
-import org.aesh.readline.terminal.Key;
-import org.aesh.readline.terminal.formatting.CharacterType;
-import org.aesh.readline.terminal.formatting.Color;
-import org.aesh.readline.terminal.formatting.TerminalColor;
-import org.aesh.readline.terminal.formatting.TerminalString;
-import org.aesh.readline.terminal.formatting.TerminalTextStyle;
+import org.aesh.terminal.KeyAction;
+import org.aesh.terminal.Key;
+import org.aesh.terminal.formatting.CharacterType;
+import org.aesh.terminal.formatting.Color;
+import org.aesh.terminal.formatting.TerminalColor;
+import org.aesh.terminal.formatting.TerminalString;
+import org.aesh.terminal.formatting.TerminalTextStyle;
import org.aesh.selector.Selector;
import org.aesh.selector.SelectorType;
import org.aesh.terminal.utils.ANSI;
diff --git a/examples/src/main/java/examples/ParentCommandExample.java b/examples/src/main/java/examples/ParentCommandExample.java
index 71c6ee32f..6af51830c 100644
--- a/examples/src/main/java/examples/ParentCommandExample.java
+++ b/examples/src/main/java/examples/ParentCommandExample.java
@@ -40,9 +40,9 @@
import org.aesh.command.validator.ValidatorInvocation;
import org.aesh.console.ReadlineConsole;
import org.aesh.readline.Prompt;
-import org.aesh.readline.terminal.formatting.Color;
-import org.aesh.readline.terminal.formatting.TerminalColor;
-import org.aesh.readline.terminal.formatting.TerminalString;
+import org.aesh.terminal.formatting.Color;
+import org.aesh.terminal.formatting.TerminalColor;
+import org.aesh.terminal.formatting.TerminalString;
import java.io.IOException;
diff --git a/pom.xml b/pom.xml
index 41c24a987..ff64f2258 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,7 @@
1.8
1.8
- 2.6
+ 3.0