diff --git a/sway/commands/bind.c b/sway/commands/bind.c
index 99f54f46..ef9a4b7a 100644
--- a/sway/commands/bind.c
+++ b/sway/commands/bind.c
@@ -16,15 +16,14 @@
 int binding_order = 0;
 
 void free_sway_binding(struct sway_binding *binding) {
+	if (!binding) {
+		return;
+	}
+
 	if (binding->keys) {
-		for (int i = 0; i < binding->keys->length; i++) {
-			free(binding->keys->items[i]);
-		}
-		list_free(binding->keys);
-	}
-	if (binding->command) {
-		free(binding->command);
+		free_flat_list(binding->keys);
 	}
+	free(binding->command);
 	free(binding);
 }
 
@@ -72,7 +71,7 @@ struct cmd_results *cmd_bindsym(int argc, char **argv) {
 		return error;
 	}
 
-	struct sway_binding *binding = malloc(sizeof(struct sway_binding));
+	struct sway_binding *binding = calloc(1, sizeof(struct sway_binding));
 	if (!binding) {
 		return cmd_results_new(CMD_FAILURE, "bindsym",
 				"Unable to allocate binding");
@@ -122,7 +121,7 @@ struct cmd_results *cmd_bindsym(int argc, char **argv) {
 			free_flat_list(split);
 			return ret;
 		}
-		xkb_keysym_t *key = malloc(sizeof(xkb_keysym_t));
+		xkb_keysym_t *key = calloc(1, sizeof(xkb_keysym_t));
 		if (!key) {
 			free_sway_binding(binding);
 			free_flat_list(split);
@@ -165,7 +164,7 @@ struct cmd_results *cmd_bindcode(int argc, char **argv) {
 		return error;
 	}
 
-	struct sway_binding *binding = malloc(sizeof(struct sway_binding));
+	struct sway_binding *binding = calloc(1, sizeof(struct sway_binding));
 	if (!binding) {
 		return cmd_results_new(CMD_FAILURE, "bindsym",
 				"Unable to allocate binding");
@@ -209,7 +208,7 @@ struct cmd_results *cmd_bindcode(int argc, char **argv) {
 			list_free(split);
 			return error;
 		}
-		xkb_keycode_t *key = malloc(sizeof(xkb_keycode_t));
+		xkb_keycode_t *key = calloc(1, sizeof(xkb_keycode_t));
 		*key = keycode - 8;
 		list_add(binding->keys, key);
 	}
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c
index 6272dcce..3090d32f 100644
--- a/sway/input/keyboard.c
+++ b/sway/input/keyboard.c
@@ -67,9 +67,7 @@ static bool keyboard_execute_bindsym(struct sway_keyboard *keyboard,
 	list_t *keysym_bindings = config->current_mode->keysym_bindings;
 	for (int i = 0; i < keysym_bindings->length; ++i) {
 		struct sway_binding *binding = keysym_bindings->items[i];
-		sway_log(L_DEBUG, "@@ checking binding: %s", binding->command);
 		if (modifiers ^ binding->modifiers || n != binding->keys->length) {
-			sway_log(L_DEBUG, "@@ modifiers or key num dont match");
 			continue;
 		}
 
@@ -85,7 +83,8 @@ static bool keyboard_execute_bindsym(struct sway_keyboard *keyboard,
 		}
 
 		if (match) {
-			sway_log(L_DEBUG, "running command for binding: %s", binding->command);
+			sway_log(L_DEBUG, "running command for binding: %s",
+				binding->command);
 			struct cmd_results *results = handle_command(binding->command);
 			if (results->status != CMD_SUCCESS) {
 				sway_log(L_DEBUG, "could not run command for binding: %s",
@@ -291,7 +290,6 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
 
 	// handle keycodes
 	handled = keyboard_execute_bindcode(keyboard);
-	sway_log(L_DEBUG, "@@ handled by bindcode? %d", handled);
 
 	// handle translated keysyms
 	const xkb_keysym_t *translated_keysyms;
@@ -299,8 +297,8 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
 	size_t translated_keysyms_len =
 		keyboard_keysyms_translated(keyboard, keycode, &translated_keysyms,
 			&translated_modifiers);
-	pressed_keysyms_update(keyboard->pressed_keysyms_translated, translated_keysyms,
-		translated_keysyms_len, event->state);
+	pressed_keysyms_update(keyboard->pressed_keysyms_translated,
+		translated_keysyms, translated_keysyms_len, event->state);
 	if (event->state == WLR_KEY_PRESSED && !handled) {
 		handled = keyboard_execute_bindsym(keyboard,
 			keyboard->pressed_keysyms_translated, translated_modifiers,
@@ -310,9 +308,10 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
 	// Handle raw keysyms
 	const xkb_keysym_t *raw_keysyms;
 	uint32_t raw_modifiers;
-	size_t raw_keysyms_len = keyboard_keysyms_raw(keyboard, keycode, &raw_keysyms, &raw_modifiers);
-	pressed_keysyms_update(keyboard->pressed_keysyms_raw, raw_keysyms, raw_keysyms_len,
-		event->state);
+	size_t raw_keysyms_len =
+		keyboard_keysyms_raw(keyboard, keycode, &raw_keysyms, &raw_modifiers);
+	pressed_keysyms_update(keyboard->pressed_keysyms_raw, raw_keysyms,
+		raw_keysyms_len, event->state);
 	if (event->state == WLR_KEY_PRESSED && !handled) {
 		handled = keyboard_execute_bindsym(keyboard,
 			keyboard->pressed_keysyms_raw, raw_modifiers,