diff --git a/.gitmodules b/.gitmodules
index 7a232e00813ac832eb23f82ae0e3104738bf9b9d..eef89829173252edcff5a843594857000bfaf748 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -2,3 +2,6 @@
 	path = caosdb-webui
 	url = ../caosdb-webui/
 	branch = dev
+[submodule "caosdb-proto"]
+	path = caosdb-proto
+	url = git@gitlab.indiscale.com:caosdb/src/caosdb-proto.git
diff --git a/caosdb-proto b/caosdb-proto
new file mode 160000
index 0000000000000000000000000000000000000000..b0cade5e02daff99eaa46e1201f2786ac873114b
--- /dev/null
+++ b/caosdb-proto
@@ -0,0 +1 @@
+Subproject commit b0cade5e02daff99eaa46e1201f2786ac873114b
diff --git a/pom.xml b/pom.xml
index 2f4b8191e3b1d6addf9236d8a1d1c47349441172..e352041795bfbf19075b8874dff3925a03e360ca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -374,6 +374,7 @@
         <artifactId>protobuf-maven-plugin</artifactId>
         <version>0.6.1</version>
         <configuration>
+          <protoSourceRoot>${basedir}/caosdb-proto/proto/</protoSourceRoot>
           <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
           <pluginId>grpc-java</pluginId>
           <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
diff --git a/src/main/java/org/caosdb/server/CaosDBServer.java b/src/main/java/org/caosdb/server/CaosDBServer.java
index a81c2f3c0f7ffb55a6a26518220cbdcd06be97d5..9b727412bc99a2e050bb45e636cf30d8e9d19cad 100644
--- a/src/main/java/org/caosdb/server/CaosDBServer.java
+++ b/src/main/java/org/caosdb/server/CaosDBServer.java
@@ -151,7 +151,7 @@ public class CaosDBServer extends Application {
       initBackend();
       initWebServer();
       initShutDownHook();
-    } catch (Exception e1) {
+    } catch (final Exception e1) {
       logger.error("Could not start the server.", e1);
       System.exit(1);
     }
@@ -204,7 +204,7 @@ public class CaosDBServer extends Application {
    * @throws IOException
    */
   public static void initTimeZone() throws InterruptedException, IOException {
-    String serverProperty = getServerProperty(ServerProperties.KEY_TIMEZONE);
+    final String serverProperty = getServerProperty(ServerProperties.KEY_TIMEZONE);
     if (serverProperty != null && !serverProperty.isEmpty()) {
       logger.info(
           "SET TIMEZONE = "
@@ -217,7 +217,7 @@ public class CaosDBServer extends Application {
       return;
     }
 
-    String prop = System.getProperty("user.timezone");
+    final String prop = System.getProperty("user.timezone");
     if (prop != null && !prop.isEmpty()) {
       logger.info("SET TIMEZONE = " + prop + " from JVM property `user.timezone`.");
       TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.of(prop)));
@@ -225,7 +225,7 @@ public class CaosDBServer extends Application {
       return;
     }
 
-    String envVar = System.getenv("TZ");
+    final String envVar = System.getenv("TZ");
     if (envVar != null && !envVar.isEmpty()) {
       logger.info("SET TIMEZONE = " + envVar + " from evironment variable `TZ`.");
       TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.of(envVar)));
@@ -233,7 +233,7 @@ public class CaosDBServer extends Application {
       return;
     }
 
-    String fromDate = getTimeZoneFromDate();
+    final String fromDate = getTimeZoneFromDate();
     if (fromDate != null && fromDate.isEmpty()) {
       logger.info("SET TIMEZONE = " + fromDate + " from `date +%Z`.");
       TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.of(fromDate)));
@@ -299,8 +299,8 @@ public class CaosDBServer extends Application {
     return config;
   }
 
-  public static void initShiro(Ini config) {
-    BasicIniEnvironment env = new BasicIniEnvironment(config);
+  public static void initShiro(final Ini config) {
+    final BasicIniEnvironment env = new BasicIniEnvironment(config);
     final SecurityManager securityManager = env.getSecurityManager();
     SecurityUtils.setSecurityManager(securityManager);
   }
@@ -339,7 +339,7 @@ public class CaosDBServer extends Application {
     try {
       port_redirect_https =
           Integer.parseInt(getServerProperty(ServerProperties.KEY_REDIRECT_HTTP_TO_HTTPS_PORT));
-    } catch (NumberFormatException e) {
+    } catch (final NumberFormatException e) {
       port_redirect_https = port_https;
     }
     final int initialConnections =
@@ -353,7 +353,7 @@ public class CaosDBServer extends Application {
       runHTTPSServer(
           port_https, port_http, port_redirect_https, initialConnections, maxTotalConnections);
     }
-    GRPCServer.startServer(8080, 8443, 8070);
+    GRPCServer.startServer(8080, 8443);
   }
 
   private static void initDatatypes(final Access access) throws Exception {
@@ -371,10 +371,10 @@ public class CaosDBServer extends Application {
    */
   private static void runHTTPServer(
       final int port_http, final int initialConnections, final int maxTotalConnections)
-      throws Exception {
+          throws Exception {
     Engine.getInstance()
-        .getRegisteredServers()
-        .add(new org.restlet.ext.jetty.HttpServerHelper(null));
+    .getRegisteredServers()
+    .add(new org.restlet.ext.jetty.HttpServerHelper(null));
 
     // Create a component.
     component = new CaosDBComponent();
@@ -397,16 +397,16 @@ public class CaosDBServer extends Application {
     // Create an application (this class).
     final Application application = new CaosDBServer();
     application
-        .getStatusService()
-        .setContactEmail(getServerProperty(ServerProperties.KEY_ADMIN_EMAIL));
+    .getStatusService()
+    .setContactEmail(getServerProperty(ServerProperties.KEY_ADMIN_EMAIL));
     application
-        .getStatusService()
-        .setHomeRef(new Reference(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT) + "/"));
+    .getStatusService()
+    .setHomeRef(new Reference(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT) + "/"));
 
     // Attach the application to the component with a defined contextRoot.
     component
-        .getDefaultHost()
-        .attach(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT), application);
+    .getDefaultHost()
+    .attach(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT), application);
 
     component.start();
 
@@ -432,7 +432,7 @@ public class CaosDBServer extends Application {
       final int port_redirect_https,
       final int initialConnections,
       final int maxTotalConnections)
-      throws Exception {
+          throws Exception {
 
     Engine.getInstance().getRegisteredServers().add(new CaosDBServerConnectorHelper(null));
 
@@ -453,9 +453,9 @@ public class CaosDBServer extends Application {
     if (port_http != 0) {
       logger.info("Redirecting to " + port_redirect_https);
       component
-          .getServers()
-          .add(Protocol.HTTP, port_http)
-          .setNext(new HttpToHttpsRedirector(port_redirect_https));
+      .getServers()
+      .add(Protocol.HTTP, port_http)
+      .setNext(new HttpToHttpsRedirector(port_redirect_https));
     }
 
     // set initial and maximal connections
@@ -485,20 +485,20 @@ public class CaosDBServer extends Application {
     // Create an application (this class).
     final Application application = new CaosDBServer();
     application
-        .getStatusService()
-        .setContactEmail(
-            getServerProperty(ServerProperties.KEY_ADMIN_NAME)
-                + " <"
-                + getServerProperty(ServerProperties.KEY_ADMIN_EMAIL)
-                + ">");
+    .getStatusService()
+    .setContactEmail(
+        getServerProperty(ServerProperties.KEY_ADMIN_NAME)
+        + " <"
+        + getServerProperty(ServerProperties.KEY_ADMIN_EMAIL)
+        + ">");
 
     application
-        .getStatusService()
-        .setHomeRef(new Reference(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT) + "/"));
+    .getStatusService()
+    .setHomeRef(new Reference(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT) + "/"));
 
     component
-        .getDefaultHost()
-        .attach(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT), application);
+    .getDefaultHost()
+    .attach(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT), application);
 
     component.start();
 
@@ -520,16 +520,16 @@ public class CaosDBServer extends Application {
     /** ProtectedRouter. Is protected by the authenticator. */
     final Router protectedRouter =
         new Router(getContext()) {
-          @Override
-          public void handle(final Request request, final Response response) {
-            try {
-              super.handle(request, response);
-            } catch (final NullPointerException e) {
-              response.setStatus(Status.CLIENT_ERROR_REQUEST_URI_TOO_LONG);
-              response.setEntity(null);
-            }
-          }
-        };
+      @Override
+      public void handle(final Request request, final Response response) {
+        try {
+          super.handle(request, response);
+        } catch (final NullPointerException e) {
+          response.setStatus(Status.CLIENT_ERROR_REQUEST_URI_TOO_LONG);
+          response.setEntity(null);
+        }
+      }
+    };
 
     /**
      * BaseRouter. Routes the call to some special Resources, which are available without any
@@ -538,59 +538,59 @@ public class CaosDBServer extends Application {
      */
     final Router baseRouter =
         new Router(getContext()) {
-          @Override
-          public void handle(final Request request, final Response response) {
-            try {
-              super.handle(request, response);
+      @Override
+      public void handle(final Request request, final Response response) {
+        try {
+          super.handle(request, response);
+
+          // after everything, set session cookies
+          setSessionCookies(response);
+
+        } finally {
+          // remove subject from this thread so that we can reuse the
+          // thread.
+          ThreadContext.unbindSubject();
+        }
+      }
 
-              // after everything, set session cookies
-              setSessionCookies(response);
+      private void setSessionCookies(final Response response) {
 
-            } finally {
-              // remove subject from this thread so that we can reuse the
-              // thread.
-              ThreadContext.unbindSubject();
-            }
+        final Subject subject = SecurityUtils.getSubject();
+        // if authenticated as a normal user: generate and set session cookie.
+        if (subject.isAuthenticated()
+            && subject.getPrincipal() != AnonymousAuthenticationToken.PRINCIPAL) {
+          final SessionToken sessionToken = SessionToken.generate(subject);
+
+          // set session token cookie (httpOnly, secure cookie which
+          // is used to recognize a user session)
+          final CookieSetting sessionTokenCookie =
+              AuthenticationUtils.createSessionTokenCookie(sessionToken);
+          if (sessionTokenCookie != null) {
+            response.getCookieSettings().add(sessionTokenCookie);
           }
 
-          private void setSessionCookies(final Response response) {
-
-            final Subject subject = SecurityUtils.getSubject();
-            // if authenticated as a normal user: generate and set session cookie.
-            if (subject.isAuthenticated()
-                && subject.getPrincipal() != AnonymousAuthenticationToken.PRINCIPAL) {
-              final SessionToken sessionToken = SessionToken.generate(subject);
-
-              // set session token cookie (httpOnly, secure cookie which
-              // is used to recognize a user session)
-              final CookieSetting sessionTokenCookie =
-                  AuthenticationUtils.createSessionTokenCookie(sessionToken);
-              if (sessionTokenCookie != null) {
-                response.getCookieSettings().add(sessionTokenCookie);
-              }
-
-              // set session timeout cookie (secure cookie which may be
-              // used
-              // by the user interfaces for anything)
-              final CookieSetting sessionTimeoutCookie =
-                  AuthenticationUtils.createSessionTimeoutCookie(sessionToken);
-              if (sessionTimeoutCookie != null) {
-                response.getCookieSettings().add(sessionTimeoutCookie);
-              }
-            }
+          // set session timeout cookie (secure cookie which may be
+          // used
+          // by the user interfaces for anything)
+          final CookieSetting sessionTimeoutCookie =
+              AuthenticationUtils.createSessionTimeoutCookie(sessionToken);
+          if (sessionTimeoutCookie != null) {
+            response.getCookieSettings().add(sessionTimeoutCookie);
           }
-        };
+        }
+      }
+    };
 
     // These routes can be used without logging in:
     baseRouter.attach("/webinterface/version/build", WebinterfaceBuildNumber.class);
     baseRouter
-        .attach("/webinterface/{path}", Webinterface.class)
-        .getTemplate()
-        .getDefaultVariable()
-        .setType(Variable.TYPE_URI_PATH);
+    .attach("/webinterface/{path}", Webinterface.class)
+    .getTemplate()
+    .getDefaultVariable()
+    .setType(Variable.TYPE_URI_PATH);
     baseRouter
-        .attach("/login?username={username}", AuthenticationResource.class)
-        .setMatchingQuery(true);
+    .attach("/login?username={username}", AuthenticationResource.class)
+    .setMatchingQuery(true);
     baseRouter.attach("/login", AuthenticationResource.class);
     baseRouter.attach("", authenticator).setMatchingQuery(false);
 
@@ -656,22 +656,22 @@ public class CaosDBServer extends Application {
     // FileSystem etc. needs to accept parameters which contain slashes and would otherwise be
     // split at the first separator
     protectedRouter
-        .attach("/FileSystem/{path}", FileSystemResource.class)
-        .getTemplate()
-        .getDefaultVariable()
-        .setType(Variable.TYPE_URI_PATH);
+    .attach("/FileSystem/{path}", FileSystemResource.class)
+    .getTemplate()
+    .getDefaultVariable()
+    .setType(Variable.TYPE_URI_PATH);
     protectedRouter
-        .attach("/Thumbnails/{path}", ThumbnailsResource.class)
-        .getTemplate()
-        .getDefaultVariable()
-        .setType(Variable.TYPE_URI_PATH);
+    .attach("/Thumbnails/{path}", ThumbnailsResource.class)
+    .getTemplate()
+    .getDefaultVariable()
+    .setType(Variable.TYPE_URI_PATH);
     protectedRouter.attach("/Shared", SharedFileResource.class);
     protectedRouter.attach("/Shared/", SharedFileResource.class);
     protectedRouter
-        .attach("/Shared/{path}", SharedFileResource.class)
-        .getTemplate()
-        .getDefaultVariable()
-        .setType(Variable.TYPE_URI_PATH);
+    .attach("/Shared/{path}", SharedFileResource.class)
+    .getTemplate()
+    .getDefaultVariable()
+    .setType(Variable.TYPE_URI_PATH);
     ;
     protectedRouter.attach("/Info", InfoResource.class);
     protectedRouter.attach("/Info/", InfoResource.class);
@@ -680,11 +680,11 @@ public class CaosDBServer extends Application {
     protectedRouter.attach("/PermissionRules/{specifier}", PermissionRulesResource.class);
     protectedRouter.attach("/PermissionRules/{realm}/{specifier}", PermissionRulesResource.class);
     protectedRouter
-        .attach("/ServerLogs/", ServerLogsResource.class)
-        .setMatchingMode(Template.MODE_STARTS_WITH);
+    .attach("/ServerLogs/", ServerLogsResource.class)
+    .setMatchingMode(Template.MODE_STARTS_WITH);
     protectedRouter
-        .attach("/ServerLogs", ServerLogsResource.class)
-        .setMatchingMode(Template.MODE_STARTS_WITH);
+    .attach("/ServerLogs", ServerLogsResource.class)
+    .setMatchingMode(Template.MODE_STARTS_WITH);
     protectedRouter.attach("/login?username={username}", AuthenticationResource.class);
     protectedRouter.attach("/logout", LogoutResource.class);
     protectedRouter.attach("/_server_properties", ServerPropertiesResource.class);
@@ -700,37 +700,37 @@ public class CaosDBServer extends Application {
     final Handler handler =
         new Handler() {
 
-          @Override
-          public void publish(final LogRecord record) {
-            if (record.getLevel() == Level.WARNING
-                && record
-                    .getMessage()
-                    .startsWith(
-                        "StackOverflowError exception encountered while matching this string")) {
-              // cause a NullPointerException
-              throw new NullPointerException();
-            }
-          }
+      @Override
+      public void publish(final LogRecord record) {
+        if (record.getLevel() == Level.WARNING
+            && record
+            .getMessage()
+            .startsWith(
+                "StackOverflowError exception encountered while matching this string")) {
+          // cause a NullPointerException
+          throw new NullPointerException();
+        }
+      }
 
-          @Override
-          public void flush() {}
+      @Override
+      public void flush() {}
 
-          @Override
-          public void close() throws SecurityException {}
-        };
+      @Override
+      public void close() throws SecurityException {}
+    };
 
     routes:
-    for (final Route r : protectedRouter.getRoutes()) {
-      if (r instanceof TemplateRoute) {
-        final TemplateRoute t = (TemplateRoute) r;
-        for (final Handler h : t.getTemplate().getLogger().getHandlers()) {
-          if (h == handler) {
-            continue routes;
+      for (final Route r : protectedRouter.getRoutes()) {
+        if (r instanceof TemplateRoute) {
+          final TemplateRoute t = (TemplateRoute) r;
+          for (final Handler h : t.getTemplate().getLogger().getHandlers()) {
+            if (h == handler) {
+              continue routes;
+            }
           }
+          t.getTemplate().getLogger().addHandler(handler);
         }
-        t.getTemplate().getLogger().addHandler(handler);
       }
-    }
 
     return baseRouter;
   }
@@ -779,22 +779,22 @@ public class CaosDBServer extends Application {
 
   private static void initShutDownHook() {
     Runtime.getRuntime()
-        .addShutdownHook(
-            new Thread("SHUTDOWN_HTTP_SERVER") {
-              @Override
-              public void run() {
-                callPreShutdownHooks();
-                try {
-                  component.stop();
-                  System.err.print("Stopping HTTP server [OK]\n");
-                } catch (final Exception e) {
-                  System.err.print("Stopping HTTP server [failed]\n");
-                  e.printStackTrace();
-                } finally {
-                  callPostShutdownHooks();
-                }
-              }
-            });
+    .addShutdownHook(
+        new Thread("SHUTDOWN_HTTP_SERVER") {
+          @Override
+          public void run() {
+            callPreShutdownHooks();
+            try {
+              component.stop();
+              System.err.print("Stopping HTTP server [OK]\n");
+            } catch (final Exception e) {
+              System.err.print("Stopping HTTP server [failed]\n");
+              e.printStackTrace();
+            } finally {
+              callPostShutdownHooks();
+            }
+          }
+        });
   }
 
   public static Component getComponent() {
@@ -812,7 +812,7 @@ public class CaosDBServer extends Application {
    * @param key, the server property.
    * @param value, the new value.
    */
-  public static void setProperty(String key, String value) {
+  public static void setProperty(final String key, final String value) {
     SERVER_PROPERTIES.setProperty(key, value);
   }
 
@@ -820,7 +820,7 @@ public class CaosDBServer extends Application {
     return SERVER_PROPERTIES;
   }
 
-  public static void scheduleJob(JobDetail job, Trigger trigger) throws SchedulerException {
+  public static void scheduleJob(final JobDetail job, final Trigger trigger) throws SchedulerException {
     SCHEDULER.scheduleJob(job, trigger);
   }
 }
@@ -850,7 +850,7 @@ class CaosDBComponent extends Component {
    */
   @Override
   public void handle(final Request request, final Response response) {
-    long t1 = System.currentTimeMillis();
+    final long t1 = System.currentTimeMillis();
     // The server request ID is just a long random number
     request.getAttributes().put("SRID", UUID.randomUUID().toString());
     response.setServerInfo(CaosDBServer.getServerInfo());
@@ -858,7 +858,7 @@ class CaosDBComponent extends Component {
     log(request, response, t1);
   }
 
-  private void log(final Request request, final Response response, long t1) {
+  private void log(final Request request, final Response response, final long t1) {
     if (response.getStatus() == Status.SERVER_ERROR_INTERNAL) {
       final Object object = request.getAttributes().get("THROWN");
       Throwable t = null;
diff --git a/src/main/java/org/caosdb/server/grpc/EntityTransactionImpl.java b/src/main/java/org/caosdb/server/grpc/EntityTransactionImpl.java
index c482f2421db1e4d133d0e5f46494e6d1fd6cc593..6165b31670b83b56a1e5cbe42505d509ddf676e6 100644
--- a/src/main/java/org/caosdb/server/grpc/EntityTransactionImpl.java
+++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionImpl.java
@@ -1,47 +1,19 @@
 package org.caosdb.server.grpc;
 
+import org.caosdb.api.info.v1alpha1.GeneralInfoServiceGrpc.GeneralInfoServiceImplBase;
+import org.caosdb.api.info.v1alpha1.GetVersionInfoRequest;
+import org.caosdb.api.info.v1alpha1.GetVersionInfoResponse;
+import org.caosdb.api.info.v1alpha1.VersionInfo;
 import io.grpc.stub.StreamObserver;
-import java.util.UUID;
-import org.apache.shiro.SecurityUtils;
-import org.caosdb.grpc.Entity;
-import org.caosdb.grpc.EntityTransactionServiceGrpc.EntityTransactionServiceImplBase;
-import org.caosdb.server.entity.EntityInterface;
-import org.caosdb.server.entity.container.RetrieveContainer;
-import org.caosdb.server.transaction.Retrieve;
-import org.caosdb.server.utils.EntityStatus;
 
-public class EntityTransactionImpl extends EntityTransactionServiceImplBase {
+public class EntityTransactionImpl extends GeneralInfoServiceImplBase {
 
   @Override
-  public void retrieve(Entity request, StreamObserver<Entity> responseObserver) {
-    String requested_entity_id = request.getEid();
+  public void getVersionInfo(final GetVersionInfoRequest request,
+      final StreamObserver<GetVersionInfoResponse> responseObserver) {
 
-    RetrieveContainer container =
-        new RetrieveContainer(
-            SecurityUtils.getSubject(),
-            System.currentTimeMillis(),
-            UUID.randomUUID().toString(),
-            null);
-    container.add(Integer.parseInt(requested_entity_id));
-    Retrieve retrieve = new Retrieve(container);
-    try {
-      retrieve.execute();
-    } catch (Exception e) {
-      // TODO Auto-generated catch block
-      e.printStackTrace();
-    }
-    EntityInterface retrieved_entity = retrieve.getContainer().get(0);
-
-    Entity response;
-    if (retrieved_entity.getEntityStatus() == EntityStatus.VALID) {
-      response =
-          Entity.newBuilder(request)
-              .setName(retrieved_entity.getName())
-              .setDescription(retrieved_entity.getDescription())
-              .build();
-    } else {
-      response = Entity.newBuilder(request).setDescription("DOES NOT EXIST").build();
-    }
+    final VersionInfo versionInfo = VersionInfo.newBuilder().setMajor(0).setMinor(0).setPatch(1).build();
+    final GetVersionInfoResponse response = GetVersionInfoResponse.newBuilder().setVersionInfo(versionInfo).build();
 
     responseObserver.onNext(response);
     responseObserver.onCompleted();
diff --git a/src/main/java/org/caosdb/server/grpc/GRPCServer.java b/src/main/java/org/caosdb/server/grpc/GRPCServer.java
index f145e35badfa5d8ff34ba81cde879a73bd0c2fd8..3bbba23eadef5ea48593e7fa555c2fcaf47ccd3d 100644
--- a/src/main/java/org/caosdb/server/grpc/GRPCServer.java
+++ b/src/main/java/org/caosdb/server/grpc/GRPCServer.java
@@ -1,34 +1,25 @@
 package org.caosdb.server.grpc;
 
+import java.io.IOException;
 import io.grpc.Server;
 import io.grpc.ServerBuilder;
-import io.grpcweb.GrpcPortNumRelay;
-import io.grpcweb.JettyWebserverForGrpcwebTraffic;
-import java.io.File;
-import java.io.IOException;
 
 public class GRPCServer {
 
-  public static void startServer(int port_http, int port_https, int port_web)
+  public static void startServer(final int port_http, final int port_https)
       throws IOException, InterruptedException {
-    Server https_server =
-        ServerBuilder.forPort(port_https)
-            .useTransportSecurity(
-                new File("/home/tf/ssl/server-certificates/localhost-belial/localhost-belial.pem"),
-                new File(
-                    "/home/tf/ssl/server-certificates/localhost-belial/localhost-belial.key.pk8"))
-            .addService(new EntityTransactionImpl())
-            .build();
-    https_server.start();
+    //    Server https_server =
+    //        ServerBuilder.forPort(port_https)
+    //            .useTransportSecurity(
+    //                new File("/home/tf/ssl/server-certificates/localhost-belial/localhost-belial.pem"),
+    //                new File(
+    //                    "/home/tf/ssl/server-certificates/localhost-belial/localhost-belial.key.pk8"))
+    //            .addService(new EntityTransactionImpl())
+    //            .build();
+    //    https_server.start();
 
-    Server http_server =
+    final Server http_server =
         ServerBuilder.forPort(port_http).addService(new EntityTransactionImpl()).build();
     http_server.start();
-
-    JettyWebserverForGrpcwebTraffic web = new JettyWebserverForGrpcwebTraffic(8070);
-    web.starts();
-
-    // grpc-web proxy needs to know the grpc-port# so it could connect to the grpc service.
-    GrpcPortNumRelay.setGrpcPortNum(port_http);
   }
 }
diff --git a/src/main/proto/EntityService.proto b/src/main/proto/EntityService.proto
deleted file mode 100644
index d7868caab6b9a6ea99597e3505d5d0873001cb64..0000000000000000000000000000000000000000
--- a/src/main/proto/EntityService.proto
+++ /dev/null
@@ -1,14 +0,0 @@
-syntax = "proto3";
-option java_multiple_files = true;
-option java_package = "org.caosdb.grpc";
-package caosdb;
-
-message Entity {
-    string eid = 1;
-    string name = 2;
-    string description = 3;
-}
-
-service EntityTransactionService {
-    rpc retrieve(Entity) returns (Entity);
-}