diff --git a/lua/chadrc.lua b/lua/chadrc.lua
deleted file mode 100644
index 1fea4ad..0000000
--- a/lua/chadrc.lua
+++ /dev/null
@@ -1,224 +0,0 @@
--- IMPORTANT NOTE : This is the user config, can be edited. Will be preserved if updated with internal updater
-
-local M = {}
-M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {}
-
--- non plugin ui configs, available without any plugins
-M.ui = {
-   italic_comments = false,
-
-   -- theme to be used, to see all available themes, open the theme switcher by <leader> + th
-   theme = "onedark",
-
-   -- theme toggler, toggle between two themes, see theme_toggleer mappings
-   theme_toggler = {
-      enabled = false,
-      fav_themes = {
-         "onedark",
-         "one-light",
-      },
-   },
-
-   -- Enable this only if your terminal has the colorscheme set which nvchad uses
-   -- For Ex : if you have onedark set in nvchad , set onedark's bg color on your terminal
-   transparency = false,
-}
-
--- plugin related ui options
-M.ui.plugin = {
-   -- statusline related options
-   statusline = {
-      -- these are filetypes, not pattern matched
-      -- if a filetype is present in shown, it will always show the statusline, irrespective of filetypes in hidden
-      hidden = {},
-      shown = {},
-      -- default, round , slant , block , arrow
-      style = "default",
-   },
-}
-
--- non plugin normal, available without any plugins
-M.options = {
-   clipboard = "unnamedplus",
-   cmdheight = 1,
-   copy_cut = true, -- copy cut text ( x key ), visual and normal mode
-   copy_del = true, -- copy deleted text ( dd key ), visual and normal mode
-   expandtab = true,
-   hidden = true,
-   ignorecase = true,
-   insert_nav = true, -- navigation in insertmode
-   mapleader = " ",
-   mouse = "a",
-   number = true,
-   -- relative numbers in normal mode tool at the bottom of options.lua
-   numberwidth = 2,
-   permanent_undo = true,
-   shiftwidth = 2,
-   smartindent = true,
-   tabstop = 8, -- Number of spaces that a <Tab> in the file counts for
-   timeoutlen = 400,
-   relativenumber = false,
-   ruler = false,
-   updatetime = 250,
-   -- used for updater
-   update_url = "https://github.com/NvChad/NvChad",
-   update_branch = "main",
-}
-
--- these are plugin related options
-M.options.plugin = {
-   autosave = false, -- autosave on changed text or insert mode leave
-   -- timeout to be used for using escape with a key combination, see mappings.plugin.better_escape
-   esc_insertmode_timeout = 300,
-}
-
--- enable and disable plugins (false for disable)
-M.plugin_status = {
-   autosave = false, -- to autosave files
-   blankline = true, -- beautified blank lines
-   bufferline = true, -- buffer shown as tabs
-   cheatsheet = true, -- fuzzy search your commands/keymappings
-   colorizer = true,
-   comment = true, -- universal commentor
-   dashboard = false, -- a nice looking dashboard
-   esc_insertmode = true, -- escape from insert mode using custom keys
-   feline = true, -- statusline
-   gitsigns = true, -- gitsigns in statusline
-   lspsignature = true, -- lsp enhancements
-   neoformat = true, -- universal formatter
-   neoscroll = true, -- smooth scroll
-   telescope_media = false, -- see media files in telescope picker
-   truezen = false, -- no distraction mode for nvim
-   vim_fugitive = false, -- git in nvim
-   vim_matchup = true, -- % magic, match it but improved
-}
-
--- mappings -- don't use a single keymap twice --
--- non plugin mappings
-M.mappings = {
-   -- close current focused buffer
-   close_buffer = "<leader>x",
-   copy_whole_file = "<C-a>", -- copy all contents of the current buffer
-
-   -- navigation in insert mode, only if enabled in options
-   insert_nav = {
-      backward = "<C-h>",
-      end_of_line = "<C-e>",
-      forward = "<C-l>",
-      next_line = "<C-k>",
-      prev_line = "<C-j>",
-      top_of_line = "<C-a>",
-   },
-
-   line_number_toggle = "<leader>n", -- show or hide line number
-   new_buffer = "<S-t>", -- open a new buffer
-   new_tab = "<C-t>b", -- open a new vim tab
-   save_file = "<C-s>", -- save file using :w
-   theme_toggler = "<leader>tt", -- for theme toggler, see in ui.theme_toggler
-
-   -- terminal related mappings
-   terminal = {
-      -- multiple mappings can be given for esc_termmode and esc_hide_termmode
-      -- get out of terminal mode
-      esc_termmode = { "jk" }, -- multiple mappings allowed
-      -- get out of terminal mode and hide it
-      -- it does not close it, see pick_term mapping to see hidden terminals
-      esc_hide_termmode = { "JK" }, -- multiple mappings allowed
-      -- show hidden terminal buffers in a telescope picker
-      pick_term = "<leader>W",
-      -- below three are for spawning terminals
-      new_horizontal = "<leader>h",
-      new_vertical = "<leader>v",
-      new_window = "<leader>w",
-   },
-
-   -- update nvchad from nvchad, chadness 101
-   update_nvchad = "<leader>uu",
-}
-
--- all plugins related mappings
--- to get short info about a plugin, see the respective string in plugin_status, if not present, then info here
-M.mappings.plugin = {
-   bufferline = {
-      next_buffer = "<TAB>", -- next buffer
-      prev_buffer = "<S-Tab>", -- previous buffer
-      --better window movement
-      moveLeft = "<C-h>",
-      moveRight = "<C-l>",
-      moveUp = "<C-k>",
-      moveDown = "<C-j>",
-   },
-   chadsheet = {
-      default_keys = "<leader>dk",
-      user_keys = "<leader>uk",
-   },
-   comment = {
-      toggle = "<leader>/", -- trigger comment on a single/selected lines/number prefix
-   },
-   dashboard = {
-      bookmarks = "<leader>bm",
-      new_file = "<leader>fn", -- basically create a new buffer
-      open = "<leader>db", -- open dashboard
-      session_load = "<leader>l", -- load a saved session
-      session_save = "<leader>s", -- save a session
-   },
-   -- note: this is an edditional mapping to escape, escape key will still work
-   better_escape = {
-      esc_insertmode = { "jk" }, -- multiple mappings allowed
-   },
-   nvimtree = {
-      toggle = "<C-n>", -- file manager
-   },
-   neoformat = {
-      format = "<leader>fm",
-   },
-   telescope = {
-      buffers = "<leader>fb",
-      find_files = "<leader>ff",
-      git_commits = "<leader>cm",
-      git_status = "<leader>gt",
-      help_tags = "<leader>fh",
-      live_grep = "<leader>fw",
-      oldfiles = "<leader>fo",
-      themes = "<leader>th",
-   },
-   telescope_media = {
-      media_files = "<leader>fp",
-   },
-   truezen = { -- distraction free modes mapping, hide statusline, tabline, line numbers
-      ataraxis_mode = "<leader>zz", -- center
-      focus_mode = "<leader>zf",
-      minimalistic_mode = "<leader>zm", -- as it is
-   },
-   vim_fugitive = {
-      diff_get_2 = "<leader>gh",
-      diff_get_3 = "<leader>gl",
-      git = "<leader>gs",
-      git_blame = "<leader>gb",
-   },
-}
-
--- user custom mappings
--- e.g: name = { "mode" , "keys" , "cmd" , "options"}
--- name: can be empty or something unique with repect to other custom mappings
---    { mode, key, cmd } or name = { mode, key, cmd }
--- mode: usage: mode or { mode1, mode2 }, multiple modes allowed, available modes => :h map-modes,
--- keys: multiple keys allowed, same synxtax as modes
--- cmd:  for vim commands, must use ':' at start and add <CR> at the end if want to execute
--- options: see :h nvim_set_keymap() opts section
-M.custom.mappings = {
-   -- clear_all = {
-   --    "n",
-   --    "<leader>cc",
-   --    "gg0vG$d",
-   -- },
-}
-
-M.plugins = {
-   lspconfig = {
-      -- servers = {"html", "cssls"}
-      servers = {},
-   },
-}
-
-return M
diff --git a/lua/default_config.lua b/lua/core/default_config.lua
similarity index 96%
rename from lua/default_config.lua
rename to lua/core/default_config.lua
index c8a9a36..069faeb 100644
--- a/lua/default_config.lua
+++ b/lua/core/default_config.lua
@@ -1,4 +1,5 @@
--- IMPORTANT NOTE : This is default config, so dont change anything here. (check chadrc.lua instead)
+-- IMPORTANT NOTE : This is default config, so dont change anything here.
+-- use custom/chadrc.lua instead
 
 local M = {}
 M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {}
@@ -147,8 +148,14 @@ M.mappings.plugin = {
    bufferline = {
       next_buffer = "<TAB>", -- next buffer
       prev_buffer = "<S-Tab>", -- previous buffer
+      --TODO move out of bufferline
+      --better window movement
+      moveLeft = "<C-h>",
+      moveRight = "<C-l>",
+      moveUp = "<C-k>",
+      moveDown = "<C-j>",
    },
-   chadsheet = {
+   cheatsheet = {
       default_keys = "<leader>dk",
       user_keys = "<leader>uk",
    },
@@ -160,7 +167,7 @@ M.mappings.plugin = {
       new_file = "<leader>fn", -- basically create a new buffer
       open = "<leader>db", -- open dashboard
       session_load = "<leader>l", -- load a saved session
-      session_save = "<leader>s",
+      session_save = "<leader>s", -- save a session
    },
    -- note: this is an edditional mapping to escape, escape key will still work
    better_escape = {
diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua
index 568b2af..2e86198 100644
--- a/lua/core/mappings.lua
+++ b/lua/core/mappings.lua
@@ -131,8 +131,8 @@ M.bufferline = function()
    map("n", m.moveDown, "<C-w>j")
 end
 
-M.chadsheet = function()
-   local m = plugin_maps.chadsheet
+M.cheatsheet = function()
+   local m = plugin_maps.cheatsheet
 
    map("n", m.default_keys, ":lua require('cheatsheet').show_cheatsheet_telescope() <CR>")
    map(
diff --git a/lua/core/utils.lua b/lua/core/utils.lua
index 91e31d6..df3f81d 100644
--- a/lua/core/utils.lua
+++ b/lua/core/utils.lua
@@ -152,9 +152,9 @@ M.load_config = function(reload)
       "['mappings']['terminal']['esc_hide_termmode']",
    }
 
-   local default_config = "default_config"
+   local default_config = "core.default_config"
    local config_name = vim.g.nvchad_user_config or "chadrc"
-   local config_file = vim.fn.stdpath "config" .. "/lua/" .. config_name .. ".lua"
+   local config_file = vim.fn.stdpath "config" .. "/lua/custom/" .. config_name .. ".lua"
 
    -- unload the modules if force reload
    if reload then
@@ -170,7 +170,7 @@ M.load_config = function(reload)
    -- print warning texts if user config file is  present
    -- check if the user config is present
    if vim.fn.filereadable(vim.fn.glob(config_file)) == 1 then
-      local present, config = pcall(require, config_name)
+      local present, config = pcall(require, "custom/" .. config_name)
       if present then
          -- make sure the returned value is table
          if type(config) == "table" then
diff --git a/lua/custom/chadrc.lua b/lua/custom/chadrc.lua
new file mode 100644
index 0000000..3f3d168
--- /dev/null
+++ b/lua/custom/chadrc.lua
@@ -0,0 +1,29 @@
+-- IMPORTANT NOTE : This is the user config, can be edited. Will be preserved if updated with internal updater
+
+local M = {}
+M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {}
+
+-- To use this file, copy the strucutre of `core/default_config.lua`,
+-- then define your new var, an example of setting relative number:
+
+-- M.options = {
+--    relativenumber = true,
+-- }
+
+-- user custom mappings
+-- e.g: name = { "mode" , "keys" , "cmd" , "options"}
+-- name: can be empty or something unique with repect to other custom mappings
+--    { mode, key, cmd } or name = { mode, key, cmd }
+-- mode: usage: mode or { mode1, mode2 }, multiple modes allowed, available modes => :h map-modes,
+-- keys: multiple keys allowed, same synxtax as modes
+-- cmd:  for vim commands, must use ':' at start and add <CR> at the end if want to execute
+-- options: see :h nvim_set_keymap() opts section
+M.custom.mappings = {
+   -- clear_all = {
+   --    "n",
+   --    "<leader>cc",
+   --    "gg0vG$d",
+   -- },
+}
+
+return M
diff --git a/lua/plugins/configs/chadsheet.lua b/lua/plugins/configs/cheatsheet.lua
similarity index 66%
rename from lua/plugins/configs/chadsheet.lua
rename to lua/plugins/configs/cheatsheet.lua
index 0a6cc02..39d0b1f 100644
--- a/lua/plugins/configs/chadsheet.lua
+++ b/lua/plugins/configs/cheatsheet.lua
@@ -1,4 +1,4 @@
-local present, chadsheet = pcall(require, "cheatsheet")
+local present, cheatsheet = pcall(require, "cheatsheet")
 
 if not present then
    return
@@ -8,28 +8,28 @@ local mappings = require("core.utils").load_config().mappings
 
 -- add user mappings to the cheetsheet
 -- improve this function to not hardcode plugin
-local function add_to_chadsheet(section, keymap, desc)
+local function add_to_cheatsheet(section, keymap, desc)
    if section == "plugin" then
       for sec, key in pairs(mappings.plugin) do
-         add_to_chadsheet(sec, key, sec)
+         add_to_cheatsheet(sec, key, sec)
       end
    else
       if type(keymap) == "table" then
          for sec, key in pairs(keymap) do
             if type(sec) == "number" then
-               add_to_chadsheet(section, key, desc or section)
+               add_to_cheatsheet(section, key, desc or section)
             else
-               add_to_chadsheet(sec, key, desc or section)
+               add_to_cheatsheet(sec, key, desc or section)
             end
          end
       else
-         chadsheet.add_cheat(section, keymap, desc or "Misc")
+         cheatsheet.add_cheat(section, keymap, desc or "Misc")
       end
    end
 end
 
 for section, keymap in pairs(mappings) do
-   add_to_chadsheet(section, keymap)
+   add_to_cheatsheet(section, keymap)
 end
 
 require("cheatsheet").setup {
diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua
index 01456ce..e9e23a1 100644
--- a/lua/plugins/init.lua
+++ b/lua/plugins/init.lua
@@ -280,10 +280,10 @@ return packer.startup(function()
             disable = not plugin_status.cheatsheet,
             after = "telescope.nvim",
             config = function()
-               require "plugins.configs.chadsheet"
+               require "plugins.configs.cheatsheet"
             end,
             setup = function()
-               require("core.mappings").chadsheet()
+               require("core.mappings").cheatsheet()
             end,
          },
          {