diff --git a/DISCLAIMER b/DISCLAIMER
deleted file mode 100644
index 2644e06..0000000
--- a/DISCLAIMER
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache NLPCraft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by
-the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates
-that the infrastructure, communications, and decision making process have stabilized in a manner consistent
-with other successful ASF projects. While incubation status is not necessarily a reflection of the
-completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
\ No newline at end of file
diff --git a/DISCLAIMER-WIP b/DISCLAIMER-WIP
new file mode 100644
index 0000000..6467aab
--- /dev/null
+++ b/DISCLAIMER-WIP
@@ -0,0 +1,18 @@
+Apache NLPCraft is an effort undergoing incubation at The Apache Software Foundation (ASF),
+sponsored by the Apache Incubator. Incubation is required of all newly accepted projects
+until a further review indicates that the infrastructure, communications, and decision
+making process have stabilized in a manner consistent with other successful ASF projects.
+While incubation status is not necessarily a reflection of the completeness or stability
+of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+
+Some of the incubating project's releases may not be fully compliant with ASF policy. For
+example, releases may have incomplete or un-reviewed licensing conditions. What follows is
+a list of known issues the project is currently aware of (note that this list, by definition,
+is likely to be incomplete):
+
+ * Releases may have incomplete licensing conditions.
+
+If you are planning to incorporate this work into your product/project, please be aware that
+you will need to conduct a thorough licensing review to determine the overall implications of
+including this work. For the current status of this project through the Apache Incubator
+visit: https://incubator.apache.org/projects/nlpcraft.html
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
index cfcc90a..ecce5ce 100644
--- a/LICENSE
+++ b/LICENSE
@@ -201,25 +201,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 
-File org.apache.nlpcraft.common.util.NCIdGenerator.java is based on https://github.com/peet/hashids.java
-and licensed under MIT license:
-
-    Copyright 2012 Ivan Akimov
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
-    documentation files (the "Software"), to deal in the Software without restriction, including without limitation
-    the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
-    and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all copies or substantial
-    portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-    TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-    DEALINGS IN THE SOFTWARE.
-
 File org.apache.nlpcraft.common.blowfish.NCBlowfishHasher.java is based on
 https://github.com/jeremyh/jBCrypt/blob/master/src/main/java/org/mindrot/BCrypt.java
 and licensed as follows:
diff --git a/NOTICE b/NOTICE
index 6a015a1..43508eb 100644
--- a/NOTICE
+++ b/NOTICE
@@ -6,8 +6,9 @@
 
 File org.apache.nlpcraft.common.util.NCIdGenerator.java
 is based on https://github.com/peet/Hashids.java
-Copyright (C) 2012 Ivan Akimov
+Copyright (C) Ivan Akimov
+Copyright (C) Peet Goddard
 
-File org.apache.nlpcraft.common.blowfish.NCBlowfishHasher.java.
-Based on https://github.com/jeremyh/jBCrypt/blob/master/src/main/java/org/mindrot/BCrypt.java
-Copyright (C) 2006 Damien Miller <djm@mindrot.org>
\ No newline at end of file
+File org.apache.nlpcraft.common.blowfish.NCBlowfishHasher.java
+is based on https://github.com/jeremyh/jBCrypt/blob/master/src/main/java/org/mindrot/BCrypt.java
+Copyright (C) Damien Miller <djm@mindrot.org>
\ No newline at end of file
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCIdGenerator.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCIdGenerator.java
index dd1abc6..dbd2b7d 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCIdGenerator.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCIdGenerator.java
@@ -20,8 +20,7 @@
 import java.util.*;
 
 /**
- * Copied and modified from: https://github.com/peet/hashids.java/blob/master/src/HashidsJava/Hashids.java
- * Copyright (C) Peet Goddard 
+ * Implementation is based on https://github.com/peet/hashids.java/blob/master/src/HashidsJava/Hashids.java
  */
 public class NCIdGenerator {
     private static final String DEFAULT_ALPHABET = "xcS4F6h89aUbideAI7tkynuopqrXCgTE5GBKHLMjfRsz";
