diff --git a/src/components/boris/BorisComments/index.tsx b/src/components/boris/BorisComments/index.tsx
index 2925f2b5..9f79ccf6 100644
--- a/src/components/boris/BorisComments/index.tsx
+++ b/src/components/boris/BorisComments/index.tsx
@@ -5,9 +5,9 @@ import { NodeCommentForm } from '~/components/node/NodeCommentForm';
 import { NodeNoComments } from '~/components/node/NodeNoComments';
 import { NodeComments } from '~/views/node/NodeComments';
 import { Footer } from '~/components/main/Footer';
-import { CommentProvider, useCommentContext } from '~/utils/providers/CommentProvider';
-import { useUserContext } from '~/utils/providers/UserProvider';
-import { useNodeContext } from '~/utils/providers/NodeProvider';
+import { CommentContextProvider, useCommentContext } from '~/utils/context/CommentContextProvider';
+import { useUserContext } from '~/utils/context/UserContextProvider';
+import { useNodeContext } from '~/utils/context/NodeContextProvider';
 
 interface IProps {}
 
@@ -31,7 +31,7 @@ const BorisComments: FC<IProps> = () => {
         {isLoading ? (
           <NodeNoComments is_loading count={7} />
         ) : (
-          <CommentProvider
+          <CommentContextProvider
             comments={comments}
             count={count}
             onDeleteComment={onDeleteComment}
@@ -40,7 +40,7 @@ const BorisComments: FC<IProps> = () => {
             isLoading={isLoading}
           >
             <NodeComments order="ASC" />
-          </CommentProvider>
+          </CommentContextProvider>
         )}
       </Group>
 
diff --git a/src/components/node/NodeTagsBlock/index.tsx b/src/components/node/NodeTagsBlock/index.tsx
index a23f9609..6e29226d 100644
--- a/src/components/node/NodeTagsBlock/index.tsx
+++ b/src/components/node/NodeTagsBlock/index.tsx
@@ -1,6 +1,6 @@
 import React, { FC } from 'react';
 import { NodeTags } from '~/components/node/NodeTags';
-import { useTagContext } from '~/utils/providers/TagProvider';
+import { useTagContext } from '~/utils/context/TagsContextProvider';
 
 interface IProps {}
 
diff --git a/src/containers/App.tsx b/src/containers/App.tsx
index 52db42bc..115bf213 100644
--- a/src/containers/App.tsx
+++ b/src/containers/App.tsx
@@ -9,14 +9,14 @@ import { BottomContainer } from '~/containers/main/BottomContainer';
 import { MainRouter } from '~/containers/main/MainRouter';
 import { DragDetectorProvider } from '~/utils/hooks/useDragDetector';
 import { useUser } from '~/utils/hooks/user/userUser';
-import { UserProvider } from '~/utils/providers/UserProvider';
+import { UserContextProvider } from '~/utils/context/UserContextProvider';
 
 const App: VFC = () => {
   const user = useUser();
 
   return (
     <ConnectedRouter history={history}>
-      <UserProvider user={user}>
+      <UserContextProvider user={user}>
         <DragDetectorProvider>
           <PageCover />
 
@@ -28,7 +28,7 @@ const App: VFC = () => {
           </MainLayout>
           <BottomContainer />
         </DragDetectorProvider>
-      </UserProvider>
+      </UserContextProvider>
     </ConnectedRouter>
   );
 };
diff --git a/src/layouts/BorisLayout/index.tsx b/src/layouts/BorisLayout/index.tsx
index 11cf7eb9..6a97617a 100644
--- a/src/layouts/BorisLayout/index.tsx
+++ b/src/layouts/BorisLayout/index.tsx
@@ -8,7 +8,7 @@ import { BorisComments } from '~/components/boris/BorisComments';
 import { Card } from '~/components/containers/Card';
 import { SidebarRouter } from '~/containers/main/SidebarRouter';
 import { BorisSidebar } from '~/components/boris/BorisSidebar';
-import { useUserContext } from '~/utils/providers/UserProvider';
+import { useUserContext } from '~/utils/context/UserContextProvider';
 import { BorisUsageStats } from '~/redux/boris/reducer';
 
 type IProps = {
diff --git a/src/layouts/NodeLayout/index.tsx b/src/layouts/NodeLayout/index.tsx
index cc779d4d..0f334e56 100644
--- a/src/layouts/NodeLayout/index.tsx
+++ b/src/layouts/NodeLayout/index.tsx
@@ -14,7 +14,7 @@ import { URLS } from '~/constants/urls';
 import { EditorEditDialog } from '~/containers/dialogs/EditorEditDialog';
 
 import styles from './styles.module.scss';
-import { useNodeContext } from '~/utils/providers/NodeProvider';
+import { useNodeContext } from '~/utils/context/NodeContextProvider';
 
 type IProps = {};
 
diff --git a/src/pages/boris.tsx b/src/pages/boris.tsx
index 5ceb949f..87fe183c 100644
--- a/src/pages/boris.tsx
+++ b/src/pages/boris.tsx
@@ -4,7 +4,7 @@ import { useShallowSelect } from '~/utils/hooks/useShallowSelect';
 import { selectNode } from '~/redux/node/selectors';
 import { BorisLayout } from '~/layouts/BorisLayout';
 import { nodeLoadNode } from '~/redux/node/actions';
-import { CommentProvider } from '~/utils/providers/CommentProvider';
+import { CommentContextProvider } from '~/utils/context/CommentContextProvider';
 import { useImageModal } from '~/utils/hooks/useImageModal';
 import { useNodeComments } from '~/utils/hooks/node/useNodeComments';
 import { useBoris } from '~/utils/hooks/boris/useBoris';
@@ -28,7 +28,7 @@ const BorisPage: VFC = () => {
   }, [dispatch, node.is_loading]);
 
   return (
-    <CommentProvider
+    <CommentContextProvider
       comments={comments}
       count={count}
       isLoading={isLoadingComments}
@@ -42,7 +42,7 @@ const BorisPage: VFC = () => {
         isTester={isTester}
         stats={stats}
       />
-    </CommentProvider>
+    </CommentContextProvider>
   );
 };
 
diff --git a/src/pages/node/[id].tsx b/src/pages/node/[id].tsx
index 56b8fe40..90bb6209 100644
--- a/src/pages/node/[id].tsx
+++ b/src/pages/node/[id].tsx
@@ -7,11 +7,11 @@ import { useImageModal } from '~/utils/hooks/useImageModal';
 import { useNodeComments } from '~/utils/hooks/node/useNodeComments';
 import { useUser } from '~/utils/hooks/user/userUser';
 import { useNodeTags } from '~/utils/hooks/node/useNodeTags';
-import { NodeProvider } from '~/utils/providers/NodeProvider';
-import { CommentProvider } from '~/utils/providers/CommentProvider';
-import { TagProvider } from '~/utils/providers/TagProvider';
+import { NodeContextProvider } from '~/utils/context/NodeContextProvider';
+import { CommentContextProvider } from '~/utils/context/CommentContextProvider';
+import { TagsContextProvider } from '~/utils/context/TagsContextProvider';
 import { useNodePermissions } from '~/utils/hooks/node/useNodePermissions';
-import { NodeRelatedProvider } from '~/utils/providers/NodeRelatedProvider';
+import { NodeRelatedContextProvider } from '~/utils/context/NodeRelatedContextProvider';
 
 type Props = RouteComponentProps<{ id: string }> & {};
 
@@ -41,9 +41,9 @@ const NodePage: FC<Props> = ({
   useScrollToTop([id, isLoadingComments]);
 
   return (
-    <NodeProvider node={node} isLoading={isLoading}>
-      <NodeRelatedProvider related={related} isLoading={isLoading}>
-        <CommentProvider
+    <NodeContextProvider node={node} isLoading={isLoading}>
+      <NodeRelatedContextProvider related={related} isLoading={isLoading}>
+        <CommentContextProvider
           comments={comments}
           count={commentsCount}
           lastSeenCurrent={lastSeenCurrent}
@@ -52,7 +52,7 @@ const NodePage: FC<Props> = ({
           onLoadMoreComments={onLoadMoreComments}
           onDeleteComment={onDeleteComment}
         >
-          <TagProvider
+          <TagsContextProvider
             tags={node.tags}
             canAppend={user.is_user}
             canDelete={canEdit}
@@ -62,10 +62,10 @@ const NodePage: FC<Props> = ({
             onTagDelete={onTagDelete}
           >
             <NodeLayout />
-          </TagProvider>
-        </CommentProvider>
-      </NodeRelatedProvider>
-    </NodeProvider>
+          </TagsContextProvider>
+        </CommentContextProvider>
+      </NodeRelatedContextProvider>
+    </NodeContextProvider>
   );
 };
 
diff --git a/src/utils/providers/CommentProvider.tsx b/src/utils/context/CommentContextProvider.tsx
similarity index 89%
rename from src/utils/providers/CommentProvider.tsx
rename to src/utils/context/CommentContextProvider.tsx
index 9badfe16..b8e8617b 100644
--- a/src/utils/providers/CommentProvider.tsx
+++ b/src/utils/context/CommentContextProvider.tsx
@@ -23,7 +23,7 @@ const CommentContext = createContext<CommentProviderProps>({
   onDeleteComment: () => {},
 });
 
-export const CommentProvider: FC<CommentProviderProps> = ({ children, ...contextValue }) => {
+export const CommentContextProvider: FC<CommentProviderProps> = ({ children, ...contextValue }) => {
   return <CommentContext.Provider value={contextValue}>{children}</CommentContext.Provider>;
 };
 
diff --git a/src/utils/providers/NodeProvider.tsx b/src/utils/context/NodeContextProvider.tsx
similarity index 83%
rename from src/utils/providers/NodeProvider.tsx
rename to src/utils/context/NodeContextProvider.tsx
index a044268c..b3e21715 100644
--- a/src/utils/providers/NodeProvider.tsx
+++ b/src/utils/context/NodeContextProvider.tsx
@@ -12,7 +12,7 @@ export const NodeContext = createContext<NodeContextProps>({
   isLoading: false,
 });
 
-export const NodeProvider: FC<NodeContextProps> = ({ children, ...contextValue }) => {
+export const NodeContextProvider: FC<NodeContextProps> = ({ children, ...contextValue }) => {
   return <NodeContext.Provider value={contextValue}>{children}</NodeContext.Provider>;
 };
 
diff --git a/src/utils/context/NodeRelatedContextProvider.tsx b/src/utils/context/NodeRelatedContextProvider.tsx
new file mode 100644
index 00000000..0307651b
--- /dev/null
+++ b/src/utils/context/NodeRelatedContextProvider.tsx
@@ -0,0 +1,18 @@
+import { INodeRelated } from '~/redux/node/types';
+import React, { createContext, FC, useContext } from 'react';
+
+interface NodeRelatedProviderProps {
+  related: INodeRelated;
+  isLoading: boolean;
+}
+
+const NodeRelatedContext = createContext<NodeRelatedProviderProps>({
+  related: { albums: {}, similar: [] },
+  isLoading: false,
+});
+
+export const NodeRelatedContextProvider: FC<NodeRelatedProviderProps> = ({ children, ...rest }) => (
+  <NodeRelatedContext.Provider value={rest}>{children}</NodeRelatedContext.Provider>
+);
+
+export const useNodeRelatedContext = () => useContext<NodeRelatedProviderProps>(NodeRelatedContext);
diff --git a/src/utils/providers/TagProvider.tsx b/src/utils/context/TagsContextProvider.tsx
similarity index 88%
rename from src/utils/providers/TagProvider.tsx
rename to src/utils/context/TagsContextProvider.tsx
index fdff839a..d2d71810 100644
--- a/src/utils/providers/TagProvider.tsx
+++ b/src/utils/context/TagsContextProvider.tsx
@@ -21,7 +21,7 @@ const TagContext = createContext<TagContextProps>({
   onTagDelete: () => {},
 });
 
-export const TagProvider: FC<TagContextProps> = ({ children, ...contextValue }) => {
+export const TagsContextProvider: FC<TagContextProps> = ({ children, ...contextValue }) => {
   return <TagContext.Provider value={contextValue}>{children}</TagContext.Provider>;
 };
 
diff --git a/src/utils/providers/UserProvider.tsx b/src/utils/context/UserContextProvider.tsx
similarity index 81%
rename from src/utils/providers/UserProvider.tsx
rename to src/utils/context/UserContextProvider.tsx
index 9f3b344d..5d77ec75 100644
--- a/src/utils/providers/UserProvider.tsx
+++ b/src/utils/context/UserContextProvider.tsx
@@ -4,7 +4,7 @@ import { EMPTY_USER } from '~/redux/auth/constants';
 
 const UserContext = createContext<IUser>(EMPTY_USER);
 
-export const UserProvider: FC<{ user: IUser }> = ({ children, user }) => (
+export const UserContextProvider: FC<{ user: IUser }> = ({ children, user }) => (
   <UserContext.Provider value={user}>{children}</UserContext.Provider>
 );
 
diff --git a/src/views/node/NodeBottomBlock/index.tsx b/src/views/node/NodeBottomBlock/index.tsx
index aa95a2c9..4627a02f 100644
--- a/src/views/node/NodeBottomBlock/index.tsx
+++ b/src/views/node/NodeBottomBlock/index.tsx
@@ -9,12 +9,12 @@ import { NodeTagsBlock } from '~/components/node/NodeTagsBlock';
 import StickyBox from 'react-sticky-box/dist/esnext';
 import styles from './styles.module.scss';
 import { NodeAuthorBlock } from '~/components/node/NodeAuthorBlock';
-import { useNodeContext } from '~/utils/providers/NodeProvider';
-import { useCommentContext } from '~/utils/providers/CommentProvider';
+import { useNodeContext } from '~/utils/context/NodeContextProvider';
+import { useCommentContext } from '~/utils/context/CommentContextProvider';
 import { NodeNoComments } from '~/components/node/NodeNoComments';
 import { NodeComments } from '~/views/node/NodeComments';
-import { useUserContext } from '~/utils/providers/UserProvider';
-import { useNodeRelatedContext } from '~/utils/providers/NodeRelatedProvider';
+import { useUserContext } from '~/utils/context/UserContextProvider';
+import { useNodeRelatedContext } from '~/utils/context/NodeRelatedContextProvider';
 
 interface IProps {
   commentsOrder: 'ASC' | 'DESC';
diff --git a/src/views/node/NodeComments/index.tsx b/src/views/node/NodeComments/index.tsx
index 2719645b..4cedbe28 100644
--- a/src/views/node/NodeComments/index.tsx
+++ b/src/views/node/NodeComments/index.tsx
@@ -6,9 +6,9 @@ import { canEditComment } from '~/utils/node';
 import { COMMENTS_DISPLAY } from '~/redux/node/constants';
 import { plural } from '~/utils/dom';
 import { useGrouppedComments } from '~/utils/hooks/node/useGrouppedComments';
-import { useCommentContext } from '~/utils/providers/CommentProvider';
+import { useCommentContext } from '~/utils/context/CommentContextProvider';
 import { Comment } from '~/components/comment/Comment';
-import { useUserContext } from '~/utils/providers/UserProvider';
+import { useUserContext } from '~/utils/context/UserContextProvider';
 
 interface IProps {
   order: 'ASC' | 'DESC';