diff --git a/keymap.c b/keymap.c
index 4d533d5..73ce95a 100644
--- a/keymap.c
+++ b/keymap.c
@@ -17,6 +17,13 @@ enum ctrl_keycodes {
   AB_ROSE, 
   AB_MUSHROOM,
   AB_CRAB,
+  AB_HERB,
+  AB_RADI,
+  AB_PURP,
+  AB_RED,
+  AB_YELL,
+  AB_BLUE,
+  AB_GREE,
 };
 
 enum tapdance_codes {
@@ -29,6 +36,7 @@ enum layer_codes {
   _LAYER_QWERTY,
   _LAYER_PROTECT,
   _LAYER_FUNCTION,
+  _LAYER_FUNCTION2,
 };
 
 // FIXME: These should be used with UM() for unicode input, but it doesn't seem to work...
@@ -71,12 +79,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         _______,               TD(TD_TRIPLE_META), _______,                   _______,                            _______, _______, _______, _______,            _______, _______, _______ \
     ),
     [_LAYER_FUNCTION] = LAYOUT(
-        TG(_LAYER_QWERTY), _______,            _______, _______,  _______, _______, _______,  _______,  _______,  UC_WINC,     UC_LINX, _______, DB_TOGG,            _______, KC_MUTE, _______, \
-        _______,           AB_TYPE,            AB_DIM,  AB_FFXIV, AB_KSP,  AB_IDLE, _______,  _______,  _______,  _______,     _______, _______, _______, _______,   KC_MPLY, KC_MSTP, KC_VOLU, \
-        _______,           RGB_SPD,            RGB_VAI, RGB_SPI,  RGB_HUI, RGB_SAI, _______,  U_T_AUTO, U_T_AGCR, AB_ROSE,     _______, _______, _______, _______,   KC_MPRV, KC_MNXT, KC_VOLD, \
-        KC_CAPS,           AB_MUSHROOM,        AB_ROSE, AB_CRAB,  RGB_HUD, RGB_SAD, RGB_RMOD, _______,  _______,  _______,     _______, _______, _______, \
-        _______,           RGB_TOG,            RGB_VAD, RGB_MOD,  _______, MD_BOOT, NK_TOGG,  _______,  _______,  _______,     _______, _______,                              _______, \
-        _______,           TG(_LAYER_PROTECT), _______,                    _______,                               _______,     _______, _______, _______,            _______, _______, _______ \
+        TG(_LAYER_QWERTY), _______,            _______, _______,  _______, _______, _______, _______, _______, UC_WINC,     UC_LINX, _______, DB_TOGG,                _______, KC_MUTE, _______, \
+        _______,           AB_TYPE,            AB_DIM,  AB_FFXIV, AB_KSP,  AB_IDLE, _______, _______, _______, _______,     _______, _______, _______,     _______,   KC_MPLY, KC_MSTP, KC_VOLU, \
+        _______,           _______,            _______, _______,  _______, _______, _______, _______, _______, _______,     _______, _______, _______,     _______,   KC_MPRV, KC_MNXT, KC_VOLD, \
+        KC_CAPS,           AB_MUSHROOM,        AB_ROSE, AB_CRAB,  AB_HERB, AB_RADI, _______, _______, _______, _______,     _______, _______, _______, \
+        _______,           AB_PURP,            AB_RED , AB_YELL,  AB_BLUE, AB_GREE, _______, _______, _______, _______,     _______, _______,                                  _______, \
+        _______,           TG(_LAYER_PROTECT), _______,                    _______,                            _______,     _______, MO(_LAYER_FUNCTION2), _______,   _______, _______, _______ \
+    ),
+    [_LAYER_FUNCTION2] = LAYOUT(
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            KC_MUTE, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   KC_MPLY, KC_MSTP, KC_VOLU,
+        _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______,   KC_MPRV, KC_MNXT, KC_VOLD,
+        _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______,
+        _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______,                              _______,
+        _______, _______, _______,                   _______,                            _______, _______, _______, _______,            _______, _______, _______
     ),
     /*
     [X] = LAYOUT(
@@ -386,6 +402,29 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
           layer_on(_LAYER_QWERTY);
           if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f980"SS_TAP(X_ENT));
           return false;
+        case AB_HERB:
+          layer_on(_LAYER_QWERTY);
+          if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f33f"SS_TAP(X_ENT));
+          return false;
+        case AB_RADI:
+          layer_off(_LAYER_QWERTY);
+          if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u2622"SS_TAP(X_ENT));
+          return false;
+        case AB_PURP:
+          if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f49c"SS_TAP(X_ENT));
+          return false;
+        case AB_RED:
+          if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u2764"SS_TAP(X_ENT));
+          return false;
+        case AB_YELL:
+          if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f49b"SS_TAP(X_ENT));
+          return false;
+        case AB_BLUE:
+          if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f499"SS_TAP(X_ENT));
+          return false;
+        case AB_GREE:
+          if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f49a"SS_TAP(X_ENT));
+          return false;
         default:
             return true; //Process all other keycodes normally
     }