diff --git a/groundStation/scripts/parameter.sh b/groundStation/scripts/parameter.sh
new file mode 100755
index 0000000000000000000000000000000000000000..316aa17b36c078cc95b268902af85242bcfea632
--- /dev/null
+++ b/groundStation/scripts/parameter.sh
@@ -0,0 +1,36 @@
+cd ..
+./setparam "y pos pid" "kp" 0.015 
+./setparam "y pos pid" "ki" 0.005
+./setparam "y pos pid" "kd" 0.03
+
+./setparam "x pos pid" "kp" -0.015
+./setparam "x pos pid" "ki" -0.005
+./setparam "x pos pid" "kd" -0.03
+
+./setparam "altitude pid" "kp" 9804 
+./setparam "altitude pid" "ki" 817
+./setparam "altitude pid" "kd" 7353
+
+./setparam "pitch pid" "kp" 4.29
+./setparam "pitch pid" "ki" 0
+./setparam "pitch pid" "kd" 0
+
+./setparam "roll pid" "kp" 4.29
+./setparam "roll pid" "ki" 0
+./setparam "roll pid" "kd" 0
+
+./setparam "yaw pid" "kp" 2.6
+./setparam "yaw pid" "ki" 0
+./setparam "yaw pid" "kd" 0
+
+./setparam "pitch rate pid" "kp" 1138.5
+./setparam "pitch rate pid" "ki" 0
+./setparam "pitch rate pid" "kd" 0
+
+./setparam "roll rate pid" "kp" 1138.5
+./setparam "roll rate pid" "ki" 0
+./setparam "roll rate pid" "kd" 0
+
+./setparam "yaw rate pid" "kp" 29700
+./setparam "yaw rate pid" "ki" 0
+./setparam "yaw rate pid" "kd" 0
diff --git a/groundStation/scripts/parameters.txt b/groundStation/scripts/parameters.txt
deleted file mode 100644
index b59828a078dd77e18f25cc6b2a37763804fa76b5..0000000000000000000000000000000000000000
--- a/groundStation/scripts/parameters.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-lat p -0.015
-lat i -0.005
-lat d -0.03
-long p 0.015
-long i 0.005
-long d 0.03
-height p 9804.0
-height i 817.0
-height d 7353.0
-pitch p 15.0
-pitch i 0.0
-pitch d 0.2
-roll p 15.0
-roll i 0.0
-roll d 0.2
-yaw p 2.6
-yaw i 0.0
-yaw d 0.0
-pitchv p 4600.0
-pitchv i 0.0
-pitchv d 550
-rollv p 4600.0
-rollv i 0.0
-rollv d 550
-yawv p 435480
-yawv i 0.0
-yawv d 0.0
diff --git a/groundStation/src/backend/backend.c b/groundStation/src/backend/backend.c
index 8260372f6f16a07800e81a735cbd83a308dd6a9f..633d3c850280c1a7a9bd57d2962b0b6538ab7756 100644
--- a/groundStation/src/backend/backend.c
+++ b/groundStation/src/backend/backend.c
@@ -862,8 +862,12 @@ static void quad_recv() {
 
 static void handleResponse(struct metadata *m, uint8_t * data)
 {
-	ssize_t result;
+	ssize_t result = 0;
 	char *buffer = malloc(sizeof(*buffer) * 128);
+	if (!buffer) {
+		warnx("failed immediatly");
+		return;
+	}
 
 	switch (m->msg_type) {
 		case RESPPARAM_ID:
@@ -876,20 +880,23 @@ static void handleResponse(struct metadata *m, uint8_t * data)
 			result = DecodeResponseOutput(buffer, 128, m, data);
 			break;
 		case RESPNODES_ID:
-			result = DecodeResponseGetNodes(buffer, 128, m, data);
+			result = DecodeResponseGetNodes(&buffer, 128, m, data);
 			break;
 		case RESPADDNODE_ID:
 			result = DecodeResponseAddNode(buffer, 128, m, data);
 			break;
 		default:
-			result = -1;
+			result = -2;
 			break;
 	}
 
-	if (result < 0) {
+	if (result == -2) {
 		warnx("DecodeResponse error");
 		free(buffer);
 		return;
+	} else if (result < 0) {
+		warnx("DecodeResponse error");
+		return;
 	}
 
 	// printf("msg to client = '%s'\n", buffer);
diff --git a/groundStation/src/backend/nodes.c b/groundStation/src/backend/nodes.c
index 0b387f065ebff348b5e2a787d491278276bfbf4e..ec428f2dea92db1b9254053c140a0ad53b9a62b7 100644
--- a/groundStation/src/backend/nodes.c
+++ b/groundStation/src/backend/nodes.c
@@ -77,8 +77,10 @@ static int resizeMsg(char **msg_ptr, int *curr_max, int check_val) {
 	/* resize the msg if necessary */
 	if (*curr_max < check_val) {
 		*curr_max = *curr_max * 4;
+		char *old_ptr = *msg_ptr;
 		*msg_ptr = realloc(*msg_ptr, sizeof(**msg_ptr) * *curr_max);
 		if (!msg_ptr) {
+			*msg_ptr = old_ptr;
 			return -1;
 		}
 	}
@@ -89,7 +91,7 @@ static int resizeMsg(char **msg_ptr, int *curr_max, int check_val) {
  * Returns bytes written to msg, -1 on failure.
  */
 int DecodeResponseGetNodes(
-		char * msg, 				   /* Out */
+		char ** msg, 				   /* Out */
 		size_t max_len,				   /* msg buffer max size */
 		const struct metadata *m,      /* In */
 		const uint8_t * data)	      /* In */
@@ -104,8 +106,8 @@ int DecodeResponseGetNodes(
 
 	uint16_t num_nodes = BytesTo16(data[RESP_GN_NUM_NODES_L], data[RESP_GN_NUM_NODES_H]);
 	
-	if (resizeMsg(&msg, (int *)&max_len, (m->data_len *2)) == -1) {
-		return -1;
+	if (resizeMsg(msg, (int *)&max_len, (m->data_len *2)) == -1) {
+		return -2;
 	}
 
 	int16_t val;
@@ -113,29 +115,28 @@ int DecodeResponseGetNodes(
 	size_t i;
 	int msg_len = 0, msg_offset = 0, data_offset = RESP_GN_MIN_DATA_SIZE;
 
-	sprintf(msg, "getnodes %hu %n", num_nodes, &msg_offset);
+	sprintf(*msg, "getnodes %hu %n", num_nodes, &msg_offset);
 	msg_len += msg_offset;
 
-
 	for(i = 0; i < num_nodes * 3; ++i) {
 		if (i < num_nodes * 2) {
 			val = BytesTo16(data[data_offset], data[data_offset+1]);
 			data_offset += 2;
-			sprintf(&msg[msg_len], "%" PRId16 " %n", val, &msg_offset);
+			sprintf(&(*msg)[msg_len], "%" PRId16 " %n", val, &msg_offset);
 		} else {
 			strncpy(name, (char *) (data + data_offset), 512);
 			data_offset += strlen(name) + 1;
-			sprintf(&msg[msg_len], "'%s' %n", name, &msg_offset);
+			sprintf(&(*msg)[msg_len], "'%s' %n", name, &msg_offset);
 		}
 		msg_len += msg_offset;
 
 
-		if (resizeMsg(&msg, (int *)&max_len, msg_len + (msg_offset *2)) == -1) {
-			return -1;
+		if (resizeMsg(msg, (int *)&max_len, msg_len + (msg_offset *2)) == -1) {
+			return -2;
 		}
 	}
-	strcat(&msg[msg_len], "\n");
-	return strlen(msg);
+	strcat(&(*msg)[msg_len], "\n");
+	return strlen(*msg);
 }
 
 enum ResponseAddnodeData {
diff --git a/groundStation/src/backend/nodes.h b/groundStation/src/backend/nodes.h
index 18f57c9a35419e483253da94b3e69e2d7c657fec..3ffc1bc7084a2c15c521d14ac83ac516b48e1c3c 100644
--- a/groundStation/src/backend/nodes.h
+++ b/groundStation/src/backend/nodes.h
@@ -29,7 +29,7 @@ ssize_t EncodeAddNode(
  * Returns bytes written to msg, -1 on failure.
  */
 int DecodeResponseGetNodes(
-		char * msg, 				   /* Out */
+		char ** msg, 				   /* Out */
 		size_t max_len,				   /* msg buffer max size */
 		const struct metadata *m,      /* In */
 		const uint8_t * data);         /* In */
diff --git a/groundStation/src/cli/cli.c b/groundStation/src/cli/cli.c
index 876a6bb2410472f70dcfd4f391116428a6aac714..139534a4742e4b68b388cd9240d001c257c7fb77 100644
--- a/groundStation/src/cli/cli.c
+++ b/groundStation/src/cli/cli.c
@@ -3,6 +3,7 @@
 #include <err.h>
 #include <libgen.h>
 #include <getopt.h>
+#include <stdlib.h>
 
 #include "cli.h"
 
@@ -15,6 +16,7 @@ int main(int argc, char **argv)
 	struct backend_conn  *conn;
 	int needCliHelp = 0, needCommandHelp = 0;
 
+	setenv("POSIXLY_CORRECT", "1",1);
 	// Determine if the cli was called using a symlink
 	command = basename(argv[0]);
 	for(i = 0; i < MAX_COMMANDS; ++i) {
@@ -159,8 +161,6 @@ int convert_to_id(struct backend_conn * conn, char **argv, struct convert_data *
 	int search_1 = 0, search_2 = 0;
 	const struct graph_node_type * node_definition;
 
-		
-
 	if (!isNumber(argv[1])) {
 		search_1 = 1;
 	} else {
diff --git a/groundStation/src/cli/cli_nodes.c b/groundStation/src/cli/cli_nodes.c
index 3f1d1673e7985cd73f58642f8cd5d76683f70abd..64f910bbfff1811721ee5a8091560101b284d3d1 100644
--- a/groundStation/src/cli/cli_nodes.c
+++ b/groundStation/src/cli/cli_nodes.c
@@ -42,10 +42,10 @@ int cli_getnodes(struct backend_conn * conn, int argc, char ** argv) {
 	printf("--------------------------------------------------------------------------------------------------------------\n");
 	printf("The following %lu Nodes have been found:\n", num_nodes);
 	printf("--------------------------------------------------------------------------------------------------------------\n");
-	printf("\tBLOCK\t\tTYPE\t\tNAME\t\tINPUTS\t\tPARAMS\t\tOUTPUTS\n");
+	printf("  BLOCK\tTYPE\tNAME\t\tINPUTS\t\tPARAMS\t\tOUTPUTS\n");
 	printf("--------------------------------------------------------------------------------------------------------------\n");
 	for(i = 0; i < num_nodes; ++i) {
-		printf("\t%3d\t\t%3d\t\t%s\t", node_data[i].block, node_data[i].type, node_data[i].name);
+		printf("  %3d\t%3d\t%s\t", node_data[i].block, node_data[i].type, node_data[i].name);
 		
 		const struct graph_node_type * node_definition = blockDefs[node_data[i].type];
 		printf(" {");