diff --git a/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/SshCommandClient.java b/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/SshCommandClient.java
index 6b3ab613800f32631ae07f84885a9d83e874baa2..78c54aee6951bc7ed666003d1033988e68cf4963 100644
--- a/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/SshCommandClient.java
+++ b/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/SshCommandClient.java
@@ -8,6 +8,8 @@ import com.jcraft.jsch.JSchException;
 import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.util.LinkedList;
+import java.util.List;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,8 +37,8 @@ public class SshCommandClient extends AbstractBaseSshClient {
 		super(hostName, userName, keyFile, pass);
 	}
 
-	public String executeCommand(String command) {
-		StringBuilder sb = new StringBuilder();
+	public List<String> executeCommand(String command) {
+		List<String> result = new LinkedList<>();
 		try {
 			ChannelExec channelExec = (ChannelExec) getConnectedSession().openChannel(
 				"exec");
@@ -50,7 +52,7 @@ public class SshCommandClient extends AbstractBaseSshClient {
 			String line;
 
 			while ((line = reader.readLine()) != null) {
-				sb.append(line).append('\n');
+				result.add(line);
 			}
 
 			int exitStatus = channelExec.getExitStatus();
@@ -70,6 +72,17 @@ public class SshCommandClient extends AbstractBaseSshClient {
 			log.error("Error: ", e);
 			throw new RuntimeException(e);
 		}
-		return sb.toString();
+		return result;
+	}
+
+	public boolean setPortForwarding(int lport, String rhost, int rport) {
+		try {
+			getConnectedSession().setPortForwardingL(lport, rhost, rport);
+		}
+		catch (JSchException exc) {
+			log.error("forward", exc);
+			return false;
+		}
+		return true;
 	}
 }