diff --git a/app/main.py b/app/main.py
index e5ff893f9565c3f8813351c73aa55179f7efae95..7c3485f25e6c7404fdaee658c9288110d7922719 100644
--- a/app/main.py
+++ b/app/main.py
@@ -1,18 +1,95 @@
 from fastapi import FastAPI
 from fastapi.responses import PlainTextResponse
 from app.internal.model_factory import *
+from vipscore_common.vips_model import VIPSModel
+from vipscore_common.entities import ModelConfiguration, Result
 
-app = FastAPI()
+description = """
+    Python implementation of VIPSCore, to enable models written in Python.
+"""
+
+
+app = FastAPI(
+    title = "VIPSCore-Python",
+    description=description,
+    contact= {
+        "name": "Berit Nordskog",
+        "email": "post@vips.no",
+        "url": "https://nibio.no/en/employees/berit-nordskog",
+    },
+    license_info={
+        "name": "GNU Affero General Public License v3",
+        "url": "https://www.gnu.org/licenses/agpl-3.0.en.html"
+    }
+)
 
 
 @app.get("/")
 async def root():
     return {"message": "Hello World"}
 
-@app.get("/models", response_class=PlainTextResponse)
-async def print_model_list() -> str:
+@app.get("/models", response_class=PlainTextResponse,
+         name="List all models (plain text, default language)")
+async def print_model_list_default_language() -> str:
+    return _print_model_list(VIPSModel.default_language)
+
+
+@app.get("/models/{language}", response_class=PlainTextResponse,
+         name="List all models (plain text)"
+         )
+async def print_model_list(language: str) -> str:
+    return _print_model_list(language)
+
+
+
+@app.get("/models/json",
+         name="List all models (Json, default language)"
+         )
+async def print_model_list_json_default_language():
+    return _print_model_list_json(VIPSModel.default_language)
+
+
+@app.get("/models/json/{language}",
+         name="List all models (Json)")
+async def print_model_list_json(language:str):
+    return _print_model_list_json(language)
+
+
+@app.post("/models/run/",
+         name="Run a model"
+         )
+async def run_model_from_config_only(model_configuration:ModelConfiguration):
+    return _run_model(model_configuration.model_id, model_configuration)
+
+@app.post("/models/{model_id}/run/",
+         name="Run a model"
+         )
+async def run_model_from_config_only(model_id, model_configuration:ModelConfiguration):
+    return _run_model(model_configuration.model_id, model_configuration)
+
+
+def _run_model(model_id:str, model_configuration:ModelConfiguration):
+    requested_model = get_model_instance(model_id)
+    requested_model.set_configuration(model_configuration)
+    return requested_model.get_result()
+
+
+def _print_model_list(language:str):
     model_list = ""
     vips_models = get_vips_models()
     for model_id in vips_models:
-        model_list = "%s%s %s\n" %(model_list, model_id, get_model_instance(model_id).get_model_name())
+        model_list = "%s%s %s\n" %(model_list, model_id, get_model_instance(model_id).get_model_name(language))
     return model_list
+
+def _print_model_list_json(language:str):
+    """
+    Common method for the web service methods
+    """
+    model_list = []
+    vips_models = get_vips_models()
+    for model_id in vips_models:
+        model_list.append({
+            "modelId" : model_id, 
+            "modelName" : get_model_instance(model_id).get_model_name()
+        }) 
+    return model_list
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 9ea7bd6e76b2cf500f108c957516d329a33d47ef..20e9bbd0d372b229b983627bc2a59024cea97152 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,29 +1,2 @@
-anyio==3.6.2
-certifi==2022.12.7
-click==8.1.3
-dnspython==2.3.0
-email-validator==1.3.0
 fastapi==0.89.1
-h11==0.14.0
-httpcore==0.16.3
-httptools==0.5.0
-httpx==0.23.3
-idna==3.4
-itsdangerous==2.1.2
-Jinja2==3.1.2
-MarkupSafe==2.1.1
-orjson==3.8.5
-pydantic==1.10.4
-python-dotenv==0.21.0
-python-multipart==0.0.5
-PyYAML==6.0
-rfc3986==1.5.0
-six==1.16.0
-sniffio==1.3.0
-starlette==0.22.0
-typing_extensions==4.4.0
-ujson==5.7.0
-uvicorn==0.20.0
-uvloop==0.17.0
-watchfiles==0.18.1
-websockets==10.4
+git+https://gitlab.nibio.no/VIPS/vipscore-python-common.git@0.1.6
\ No newline at end of file