diff --git a/.gitignore b/.gitignore
index 1b2aee2eb2b053c606d2d4f1ca665d284e55b6b9..15a09c5f50bded9949f534f245c1f98752f9be99 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,4 +5,73 @@ bin/
 felix-cache
 .metadata
 *.versionsBackup
-.settings
\ No newline at end of file
+.settings
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
+/target/
diff --git a/pom.xml b/pom.xml
index effa91417aaff0c23afff725b003b42d1d7bfa4a..a4f69e0018ca44f0787744bebc2736c886f08c3a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>info.kwarc.sally4</groupId>
 		<artifactId>sally4</artifactId>
-		<version>0.0.4-SNAPSHOT</version>
+		<version>0.0.6</version>
 		<relativePath>..</relativePath>
 	</parent>
 
diff --git a/src/main/java/info/kwarc/sally4/textbase/TextDocument.java b/src/main/java/info/kwarc/sally4/textbase/TextDocument.java
index eb1e777ea8e32acb6a87951c2a7b5e923441a3ed..6f6382d936026e637a5d0fbfdf7127f7fc5c096d 100644
--- a/src/main/java/info/kwarc/sally4/textbase/TextDocument.java
+++ b/src/main/java/info/kwarc/sally4/textbase/TextDocument.java
@@ -12,6 +12,8 @@ public interface TextDocument {
 	
 	String getText();
 	SallyClient getClient();
-
+	TextRange getCurrentSelection();
+	void selectRange(TextRange range);
+	
 	EventListener<AsyncAcceptor<AutocompleteRequest, AutocompleteResponse>> onAutocompleteRequest(EventHandler<AsyncAcceptor<AutocompleteRequest, AutocompleteResponse>> handler);
 }
diff --git a/src/main/java/info/kwarc/sally4/textbase/TextPosition.java b/src/main/java/info/kwarc/sally4/textbase/TextPosition.java
new file mode 100644
index 0000000000000000000000000000000000000000..4d25d75c3a1677e391bf55826aad0fe84e427d4f
--- /dev/null
+++ b/src/main/java/info/kwarc/sally4/textbase/TextPosition.java
@@ -0,0 +1,36 @@
+package info.kwarc.sally4.textbase;
+
+public class TextPosition {
+	int row;
+	int col;
+	
+	public TextPosition() {
+		
+	}
+	
+	@Override
+	public String toString() {
+		return String.format("(%d,%d)", row, col);
+	}
+	
+	public TextPosition(int row, int col) {
+		this.row = row;
+		this.col = col;
+	}
+	
+	public int getCol() {
+		return col;
+	}
+	
+	public int getRow() {
+		return row;
+	}
+	
+	public void setCol(int col) {
+		this.col = col;
+	}
+	
+	public void setRow(int row) {
+		this.row = row;
+	}
+}
diff --git a/src/main/java/info/kwarc/sally4/textbase/TextRange.java b/src/main/java/info/kwarc/sally4/textbase/TextRange.java
new file mode 100644
index 0000000000000000000000000000000000000000..64e1b734674b4894072741af3d05a644f91e76bf
--- /dev/null
+++ b/src/main/java/info/kwarc/sally4/textbase/TextRange.java
@@ -0,0 +1,37 @@
+package info.kwarc.sally4.textbase;
+
+public class TextRange {
+	TextPosition start, end;
+	
+	public TextRange() {
+		
+	}
+	
+	public TextRange(TextPosition start, TextPosition end) {
+		this.start = start;
+		this.end = end;
+	}
+
+	public TextRange(int start_row, int start_col, int end_row, int end_col) {
+		this.start = new TextPosition(start_row, start_col);
+		this.end = new TextPosition(end_row, end_col);
+	}
+
+	@Override
+	public String toString() {
+		return String.format("%s-%s", start, end);
+	}
+	
+	public TextPosition getEnd() {
+		return end;
+	}
+	public TextPosition getStart() {
+		return start;
+	}
+	public void setEnd(TextPosition end) {
+		this.end = end;
+	}
+	public void setStart(TextPosition start) {
+		this.start = start;
+	}
+}
diff --git a/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java b/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java
index 98a6d2e2fdacdeefc2e04c21056234630a0d5847..f19aa380666220e7a4a3c8b2a844adb7214b994b 100644
--- a/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java
+++ b/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java
@@ -2,8 +2,14 @@ package info.kwarc.sally4.textbase.impl;
 
 import info.kwarc.sally.comm.text.AutocompleteRequest;
 import info.kwarc.sally.comm.text.AutocompleteResponse;
+import info.kwarc.sally.comm.text.GetCurrentSelection;
+import info.kwarc.sally.comm.text.GetCurrentSelectionResponse;
+import info.kwarc.sally.comm.text.GetText;
+import info.kwarc.sally.comm.text.GetTextResponse;
+import info.kwarc.sally.comm.text.SelectText;
 import info.kwarc.sally4.registration.SallyClient;
 import info.kwarc.sally4.textbase.TextDocument;
+import info.kwarc.sally4.textbase.TextRange;
 import info.kwarc.sally4.util.AsyncAcceptor;
 import info.kwarc.sally4.util.EventHandler;
 import info.kwarc.sally4.util.EventListener;
@@ -26,9 +32,8 @@ public class TextDocumentImpl implements TextDocument {
 
 	@Override
 	public String getText() {
-		
-		//client.sendSimpleRequest(req, cls, response);
-		return null;
+		GetTextResponse resp = client.sendRequest(new GetText(), GetTextResponse.class);
+		return resp.getText();
 	}
 
 	@Override
@@ -42,4 +47,20 @@ public class TextDocumentImpl implements TextDocument {
 		return client;
 	}
 
+	@Override
+	public TextRange getCurrentSelection() {
+		GetCurrentSelectionResponse response = client.sendRequest(new GetCurrentSelection(), GetCurrentSelectionResponse.class);
+		return new TextRange(response.getStartrow(), response.getStartcolumn(), response.getEndrow(), response.getEndcolumn());
+	}
+
+	@Override
+	public void selectRange(TextRange range) {
+		SelectText st = new SelectText();
+		st.setStartrow(range.getStart().getRow());
+		st.setStartcolumn(range.getStart().getCol());
+		st.setEndrow(range.getEnd().getRow());
+		st.setEndcolumn(range.getEnd().getCol());
+		client.sendEvent(st);
+	}
+
 }