diff --git a/src/CodeSnippetDisplay.tsx b/src/CodeSnippetDisplay.tsx
index bab96f3..6c2c368 100644
--- a/src/CodeSnippetDisplay.tsx
+++ b/src/CodeSnippetDisplay.tsx
@@ -3,7 +3,13 @@ import { PathExt } from '@jupyterlab/coreutils';
 import { DocumentWidget } from '@jupyterlab/docregistry';
 import { FileEditor } from '@jupyterlab/fileeditor';
 import { Notebook, NotebookPanel } from '@jupyterlab/notebook';
-import { LabIcon, addIcon } from '@jupyterlab/ui-components';
+import {
+  LabIcon,
+  addIcon,
+  pythonIcon,
+  fileIcon,
+  rKernelIcon
+} from '@jupyterlab/ui-components';
 import { CodeEditor, IEditorServices } from '@jupyterlab/codeeditor';
 import * as nbformat from '@jupyterlab/nbformat';
 import { JupyterFrontEnd } from '@jupyterlab/application';
@@ -24,7 +30,6 @@ import React from 'react';
 
 import { CodeSnippetWidgetModel } from './CodeSnippetWidgetModel';
 import { FilterTools } from './FilterTools';
-import moreSVGstr from '../style/icon/jupyter_moreicon.svg';
 import { showPreview } from './PreviewSnippet';
 import { showMoreOptions } from './MoreOptions';
 import {
@@ -32,6 +37,45 @@ import {
   CodeSnippetContentsService
 } from './CodeSnippetContentsService';
 
+import moreSVGstr from '../style/icon/jupyter_moreicon.svg';
+import {
+  babelIcon,
+  javaIcon,
+  juliaIcon,
+  matlabIcon,
+  schemeIcon,
+  processingIcon,
+  scalaIcon,
+  groovyIcon,
+  forthIcon,
+  haskellIcon,
+  rubyIcon,
+  typescriptIcon,
+  javascriptIcon,
+  coffeescriptIcon,
+  livescriptIcon,
+  csharpIcon,
+  fsharpIcon,
+  goIcon,
+  erlangIcon,
+  ocamlIcon,
+  fortranIcon,
+  perlIcon,
+  phpIcon,
+  clojureIcon,
+  luaIcon,
+  purescriptIcon,
+  cppIcon,
+  prologIcon,
+  lispIcon,
+  cIcon,
+  kotlinIcon,
+  nodejsIcon,
+  coconutIcon,
+  sbtIcon,
+  rustIcon,
+  qsharpIcon
+} from './CodeSnippetLanguages';
 /**
  * The CSS class added to code snippet widget.
  */
@@ -77,7 +121,7 @@ const JUPYTER_CELL_MIME = 'application/vnd.jupyter.cells';
  * Icon for more options
  */
 const moreOptionsIcon = new LabIcon({
-  name: 'custom-ui-compnents:moreOptions',
+  name: 'custom-ui-components:moreOptions',
   svgstr: moreSVGstr
 });
 
@@ -245,28 +289,40 @@ export class CodeSnippetDisplay extends React.Component<
 
   // Bold text in snippet name based on search
   private boldNameOnSearch = (
-    filter: string,
-    displayed: string
+    searchValue: string,
+    language: string,
+    name: string
   ): JSX.Element => {
-    const name: string = displayed;
+    const displayName = language + name;
+
     if (
-      filter !== '' &&
-      displayed.toLowerCase().includes(filter.toLowerCase())
+      searchValue !== '' &&
+      displayName.toLowerCase().includes(searchValue.toLowerCase())
     ) {
-      const startIndex: number = name
+      const startIndex: number = displayName
         .toLowerCase()
-        .indexOf(filter.toLowerCase());
-      const endIndex: number = startIndex + filter.length;
-      const start = name.substring(0, startIndex);
-      const bolded = name.substring(startIndex, endIndex);
-      const end = name.substring(endIndex);
-      return (
-        
-          {start}
-          {bolded}
-          {end}
-        
-      );
+        .indexOf(searchValue.toLowerCase());
+
+      // Pythonlanguage
+      // if (startIndex > language.length - 1) {
+      // }
+      const endIndex: number = startIndex + searchValue.length;
+      console.log(endIndex);
+      console.log(language.length);
+      if (endIndex <= language.length) {
+        return {name};
+      } else {
+        const start = displayName.substring(language.length, startIndex);
+        const bolded = displayName.substring(startIndex, endIndex);
+        const end = displayName.substring(endIndex);
+        return (
+          
+            {start}
+            {bolded}
+            {end}
+          
+        );
+      }
     }
     return {name};
   };
@@ -444,6 +500,439 @@ export class CodeSnippetDisplay extends React.Component<
     );
   }
 
+  private renderLanguageIcon(language: string): JSX.Element {
+    switch (language) {
+      case 'Python': {
+        return (
+          
+        );
+      }
+      case 'Java': {
+        return (
+          
+        );
+      }
+      case 'R': {
+        return (
+          
+        );
+      }
+      case 'Julia': {
+        return (
+          
+        );
+      }
+      case 'Matlab': {
+        return (
+          
+        );
+      }
+      case 'Scheme': {
+        return (
+          
+        );
+      }
+      case 'Processing': {
+        return (
+          
+        );
+      }
+      case 'Scala': {
+        return (
+          
+        );
+      }
+      case 'Groovy': {
+        return (
+          
+        );
+      }
+      case 'Fortran': {
+        return (
+          
+        );
+      }
+      case 'Haskell': {
+        return (
+          
+        );
+      }
+      case 'Ruby': {
+        return (
+          
+        );
+      }
+      case 'TypeScript': {
+        return (
+          
+        );
+      }
+      case 'JavaScript': {
+        return (
+          
+        );
+      }
+      case 'CoffeeScript': {
+        return (
+          
+        );
+      }
+      case 'LiveScript': {
+        return (
+          
+        );
+      }
+      case 'C#': {
+        return (
+          
+        );
+      }
+      case 'F#': {
+        return (
+          
+        );
+      }
+      case 'Go': {
+        return (
+          
+        );
+      }
+      case 'Erlang': {
+        return (
+          
+        );
+      }
+      case 'OCaml': {
+        return (
+          
+        );
+      }
+      case 'Forth': {
+        return (
+          
+        );
+      }
+      case 'Perl': {
+        return (
+          
+        );
+      }
+      case 'PHP': {
+        return (
+          
+        );
+      }
+      case 'Clojure': {
+        return (
+          
+        );
+      }
+      case 'Lua': {
+        return (
+          
+        );
+      }
+      case 'PureScript': {
+        return (
+          
+        );
+      }
+      case 'C++': {
+        return (
+          
+        );
+      }
+      case 'Prolog': {
+        return (
+          
+        );
+      }
+      case 'Common Lisp': {
+        return (
+          
+        );
+      }
+      case 'C': {
+        return (
+          
+        );
+      }
+      case 'Kotlin': {
+        return (
+          
+        );
+      }
+      case 'NodeJS': {
+        return (
+          
+        );
+      }
+      case 'Coconut': {
+        return (
+          
+        );
+      }
+      case 'Babel': {
+        return (
+          
+        );
+      }
+      case 'sbt': {
+        return (
+          
+        );
+      }
+      case 'Rust': {
+        return (
+          
+        );
+      }
+      case 'Q#': {
+        return (
+          
+        );
+      }
+      default: {
+        return (
+          
+        );
+      }
+    }
+  }
   // Render display of code snippet list
   private renderCodeSnippet = (
     codeSnippet: ICodeSnippet,
@@ -451,6 +940,8 @@ export class CodeSnippetDisplay extends React.Component<
   ): JSX.Element => {
     const buttonClasses = BUTTON_CLASS;
     const displayName = '[' + codeSnippet.language + '] ' + codeSnippet.name;
+    const name = codeSnippet.name;
+    const language = codeSnippet.language;
 
     const actionButtons = [
       {
@@ -508,7 +999,8 @@ export class CodeSnippetDisplay extends React.Component<
               title={codeSnippet.name}
               className={DISPLAY_NAME_CLASS}
             >
-              {this.boldNameOnSearch(this.state.searchValue, displayName)}
+              {this.renderLanguageIcon(codeSnippet.language)}
+              {this.boldNameOnSearch(this.state.searchValue, language, name)}
             
             
               {actionButtons.map(btn => {
diff --git a/src/CodeSnippetEditor.tsx b/src/CodeSnippetEditor.tsx
index 231e434..4bcdadd 100644
--- a/src/CodeSnippetEditor.tsx
+++ b/src/CodeSnippetEditor.tsx
@@ -14,7 +14,7 @@ import React from 'react';
 
 import { CodeSnippetContentsService } from './CodeSnippetContentsService';
 import { CodeSnippetWidget } from './CodeSnippetWidget';
-import { SUPPORTED_LANGUAGES } from './index';
+import { SUPPORTED_LANGUAGES } from './CodeSnippetLanguages';
 import { CodeSnippetEditorTags } from './CodeSnippetEditorTags';
 
 /**
@@ -323,10 +323,18 @@ export class CodeSnippetEditor extends ReactWidget {
       message += 'Name must be filled out\n';
       status = false;
     }
+    if (name.match(/[^a-z0-9_]+/)) {
+      message += 'Wrong format of the name\n';
+      status = false;
+    }
     if (description === '') {
       message += 'Description must be filled out\n';
       status = false;
     }
+    if (description.match(/[^a-zA-Z0-9_ ,.?!]+/)) {
+      message += 'Wrong format of the description\n';
+      status = false;
+    }
     if (language === '') {
       message += 'Language must be filled out';
       status = false;
@@ -457,6 +465,13 @@ export class CodeSnippetEditor extends ReactWidget {
     this.saved = false;
   }
 
+  handleOnBlur(event: React.FocusEvent
): void {
+    const target = event.target as HTMLElement;
+    if (!target.classList.contains('touched')) {
+      target.classList.add('touched');
+    }
+  }
+
   /**
    * TODO: clean CSS style class - "Use constant"
    */
@@ -527,6 +542,7 @@ export class CodeSnippetEditor extends ReactWidget {
             onChange={(event: React.ChangeEvent): void => {
               this.handleInputFieldChange(event);
             }}
+            onBlur={this.handleOnBlur}
           >
           
             {
@@ -549,6 +565,7 @@ export class CodeSnippetEditor extends ReactWidget {
             onChange={(event: React.ChangeEvent): void => {
               this.handleInputFieldChange(event);
             }}
+            onBlur={this.handleOnBlur}
           >
           
             {
@@ -569,7 +586,7 @@ export class CodeSnippetEditor extends ReactWidget {
         Code
         {this.renderCodeInput()}