diff --git a/building_manager.py b/building_manager.py
index 165fa1b64425826c59fe51f4481f937e781f13b9..2644ad42dcc58ff99f2664faf5e29324083bcf93 100755
--- a/building_manager.py
+++ b/building_manager.py
@@ -353,7 +353,7 @@ def generate_id_rsa_files(base_dir):
     # execute ssh-keygen
     id_result = run(
         ['ssh-keygen', '-t', 'rsa', '-b', '4096', '-f', id_path, '-N', ''],
-        universal_newlines=True)
+        universal_newlines=True, stdout=PIPE)
     return id_result.returncode == 0
 
 
@@ -370,7 +370,7 @@ def generate_host_key_files(base_dir, hosts):
 
     # execute ssh-keygen
     id_result = run(['ssh-keygen', '-t', 'ed25519', '-f', key_path, '-N', ''],
-                    universal_newlines=True)
+                    universal_newlines=True, stdout=PIPE)
 
     # read content of public key as known line
     known_line = ""
@@ -744,11 +744,6 @@ def init_menu(args):
             'message': 'What docker machines will be used?',
             'choices': generate_checkbox_choices(get_machine_list())
         }
-        #  },
-        #  {
-        #  'type': 'input',
-        #  'name': 'username',
-        #  'message': 'Choose a username for the admin user'
     ]
     answers = prompt(questions)
 
@@ -792,10 +787,7 @@ def init_menu(args):
     generate_host_key_files(base_dir, hosts)
 
     for i, host in enumerate(hosts):
-        add_sftp_service(base_dir, host, i)
-        add_openhab_service(base_dir, host)
-        add_nodered_service(base_dir, host)
-        add_mqtt_service(base_dir, host, i)
+        init_machine_menu(base_dir, host, i)
 
     # print(answers)
     print(f"Configuration files generated in {base_dir}")
@@ -813,6 +805,40 @@ def init_menu(args):
         generate_swarm(answers['machines'])
 
 
+def init_machine_menu(base_dir, host, increment):
+    """Prompts to select server services
+
+    :base_dir: Directory of config files
+    :host: docker-machine host
+    :increment: incrementing number to ensure ports are unique
+    """
+    # Prompt for services
+    questions = [
+        {
+            'type': 'input',
+            'name': 'buildingid',
+            'message': f'Choose a name for building on server {host}'
+        },
+        {
+            'type': 'checkbox',
+            'name': 'services',
+            'message': 'What services shall {host} provide?',
+            'choices': generate_checkbox_choices(SERVICES.keys(), checked=True)
+        }
+    ]
+    answers = prompt(questions)
+    services = answers['services']
+    if 'sftp' in services:
+        add_sftp_service(base_dir, host, increment)
+    if 'openhab' in services:
+        add_openhab_service(base_dir, host)
+    if 'nodered' in services:
+        add_nodered_service(base_dir, host)
+    if 'mqtt' in services:
+        add_mqtt_service(base_dir, host, increment)
+    print(answers)
+
+
 def load_main_entires(base_dir):
     """Loads entries for main menu depending on available files
 
@@ -832,16 +858,17 @@ def load_main_entires(base_dir):
     return entries
 
 
-def generate_checkbox_choices(list):
+def generate_checkbox_choices(list, checked=False):
     """Generates checkbox entries for lists of strings
 
+    :list: pyhton list that shall be converted
+    :checked: if true, selections will be checked by default
     :returns: A list of dicts with name keys
     """
-    return [{'name': m} for m in list]
-
-
+    return [{'name': m, 'checked': checked} for m in list]
 # }}}
 
+
 # ******************************
 # Script main ( entry) {{{
 # ******************************