diff --git a/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/AttachingConnector.java b/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/AttachingConnector.java
new file mode 100644
index 0000000..204c876
--- /dev/null
+++ b/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/AttachingConnector.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.e4.languages.javascript.jsdi.connect;
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.eclipse.e4.languages.javascript.jsdi.VirtualMachine;
+
+public interface AttachingConnector extends Connector {
+	public VirtualMachine attach(Map arguments) throws IOException;
+}
diff --git a/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/Connector.java b/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/Connector.java
new file mode 100644
index 0000000..2715192
--- /dev/null
+++ b/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/Connector.java
@@ -0,0 +1,56 @@
+package org.eclipse.e4.languages.javascript.jsdi.connect;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+public interface Connector {
+	public Map defaultArguments();
+
+	public String description();
+
+	public String name();
+
+	public interface Argument extends Serializable {
+		public String description();
+
+		public boolean isValid(String value);
+
+		public String label();
+
+		public boolean mustSpecify();
+
+		public String name();
+
+		public void setValue(String value);
+
+		public String value();
+	}
+
+	public interface StringArgument extends Connector.Argument {
+	}
+
+	public interface IntegerArgument extends Connector.Argument {
+		public int intValue();
+
+		public boolean isValid(int intValue);
+
+		public int max();
+
+		public int min();
+
+		public void setValue(int intValue);
+	}
+
+	public interface BooleanArgument extends Connector.Argument {
+		public boolean booleanValue();
+
+		public boolean isValid(String arg1);
+
+		public void setValue(boolean booleanValue);
+	}
+
+	public interface SelectedArgument extends Connector.Argument {
+		public List choices();
+	}
+}
diff --git a/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/LaunchingConnector.java b/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/LaunchingConnector.java
new file mode 100644
index 0000000..e376121
--- /dev/null
+++ b/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/LaunchingConnector.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.e4.languages.javascript.jsdi.connect;
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.eclipse.e4.languages.javascript.jsdi.VirtualMachine;
+
+public interface LaunchingConnector extends Connector {
+	public VirtualMachine launch(Map arguments) throws IOException;
+}
diff --git a/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/ListeningConnector.java b/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/ListeningConnector.java
new file mode 100644
index 0000000..dc157e9
--- /dev/null
+++ b/bundles/org.eclipse.e4.languages.javascript.debug.jsdi/src/org/eclipse/e4/languages/javascript/jsdi/connect/ListeningConnector.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.e4.languages.javascript.jsdi.connect;
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.eclipse.e4.languages.javascript.jsdi.VirtualMachine;
+
+public interface ListeningConnector extends Connector {
+	public VirtualMachine accept(Map arguments) throws IOException;
+}
