diff --git a/include/osmocom/vty/command.h b/include/osmocom/vty/command.h
index 1db8ffe..0136f57 100644
--- a/include/osmocom/vty/command.h
+++ b/include/osmocom/vty/command.h
@@ -58,9 +58,7 @@
 	const char *motd;
 	char *motdfile;
 
-	const char *prog_name;
-	const char *prog_version;
-	const char *prog_copyright;
+	const struct vty_app_info *app_info;
 };
 
 /* There are some command levels which called from command node. */
@@ -387,6 +385,4 @@
 
 extern void *tall_vty_cmd_ctx;
 
-enum node_type (*vty_go_parent_cb)(struct vty *vty);
-
 #endif				/* _ZEBRA_COMMAND_H */
diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h
index f82ada1..f017462 100644
--- a/include/osmocom/vty/vty.h
+++ b/include/osmocom/vty/vty.h
@@ -127,8 +127,16 @@
 	return VTY_NEWLINE;
 }
 
+struct vty_app_info {
+	char *name;
+	char *version;
+	char *copyright;
+	void *tall_ctx;
+	enum node_type (*go_parent_cb)(struct vty *vty);
+};
+
 /* Prototypes. */
-void vty_init(const char *name, const char *version, const char *copyright);
+void vty_init(struct vty_app_info *app_info);
 int vty_read_config_file(const char *file_name, void *priv);
 void vty_init_vtysh (void);
 void vty_reset (void);
diff --git a/src/vty/command.c b/src/vty/command.c
index 7275a3d..21afa5c 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -84,9 +84,9 @@
 /* This is called from main when a daemon is invoked with -v or --version. */
 void print_version(int print_copyright)
 {
-	printf("%s version %s\n", host.prog_name, host.prog_version);
+	printf("%s version %s\n", host.app_info->name, host.app_info->version);
 	if (print_copyright)
-		printf("\n%s\n", host.prog_copyright);
+		printf("\n%s\n", host.app_info->copyright);
 }
 
 /* Utility function to concatenate argv argument into a single string
@@ -1751,8 +1751,8 @@
 {
 	assert(vty->node > CONFIG_NODE);
 
-	if (vty_go_parent_cb)
-		vty_go_parent_cb(vty);
+	if (host.app_info->go_parent_cb)
+		host.app_info->go_parent_cb(vty);
 	else
 		vty->node = CONFIG_NODE;
 
@@ -2162,9 +2162,10 @@
 DEFUN(show_version,
       show_version_cmd, "show version", SHOW_STR "Displays program version\n")
 {
-	vty_out(vty, "%s %s (%s).%s", host.prog_name, host.prog_version,
-		host.name ? host.name : "", VTY_NEWLINE);
-	vty_out(vty, "%s%s", host.prog_copyright, VTY_NEWLINE);
+	vty_out(vty, "%s %s (%s).%s", host.app_info->name,
+		host.app_info->version,
+		host.app_info->name ? host.app_info->name : "", VTY_NEWLINE);
+	vty_out(vty, "%s%s", host.app_info->copyright, VTY_NEWLINE);
 
 	return CMD_SUCCESS;
 }
@@ -2258,7 +2259,7 @@
 
 	/* Config file header print. */
 	vty_out(file_vty, "!\n! %s (%s) configuration saved from vty\n!",
-		host.prog_name, host.prog_version);
+		host.app_info->name, host.app_info->version);
 	//vty_time_print (file_vty, 1);
 	vty_out(file_vty, "!\n");
 
diff --git a/src/vty/vty.c b/src/vty/vty.c
index 9012b5b..ff17abf 100644
--- a/src/vty/vty.c
+++ b/src/vty/vty.c
@@ -1633,17 +1633,15 @@
 
 extern void *tall_bsc_ctx;
 /* Install vty's own commands like `who' command. */
-void vty_init(const char *name, const char *version, const char *copyright)
+void vty_init(struct vty_app_info *app_info)
 {
-	tall_vty_ctx = talloc_named_const(NULL, 0, "vty");
+	tall_vty_ctx = talloc_named_const(app_info->tall_ctx, 0, "vty");
 	tall_vty_vec_ctx = talloc_named_const(tall_vty_ctx, 0, "vty_vector");
 	tall_vty_cmd_ctx = talloc_named_const(tall_vty_ctx, 0, "vty_command");
 
 	cmd_init(1);
 
-	host.prog_name = name;
-	host.prog_version = version;
-	host.prog_copyright = copyright;
+	host.app_info = app_info;
 
 	/* For further configuration read, preserve current directory. */
 	vty_save_cwd();
