You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2020/03/14 20:33:22 UTC

[incubator-nlpcraft] branch master updated: WIP merge up from NLPCRAFT-13.

This is an automated email from the ASF dual-hosted git repository.

aradzinski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/master by this push:
     new 2da3041  WIP merge up from NLPCRAFT-13.
2da3041 is described below

commit 2da3041500eea9583a009efb08498a473abc40a5
Author: Aaron Radzinzski <ar...@datalingvo.com>
AuthorDate: Sat Mar 14 13:33:10 2020 -0700

    WIP merge up from NLPCRAFT-13.
---
 README.md                                          |   2 +-
 docs/_data/releases.yml                            |  17 +-
 docs/_includes/quick-links.html                    |   2 +-
 docs/_layouts/blog.html                            |   2 +-
 docs/_layouts/release-notes.html                   |   2 +-
 docs/basic-concepts.html                           |   2 +-
 docs/data-model.html                               | 216 ++++++++++-----------
 docs/docs.html                                     |   2 +-
 docs/download.html                                 |  18 +-
 docs/examples/alarm_clock.html                     |  20 +-
 docs/examples/light_switch.html                    |  22 +--
 docs/examples/weather_bot.html                     |   4 +-
 docs/first-example.html                            |  32 +--
 docs/getting-started.html                          |  16 +-
 docs/index.html                                    |   4 +-
 docs/integrations.html                             |  20 +-
 docs/intent-matching.html                          |  40 ++--
 docs/metrics-and-tracing.html                      |  44 ++---
 docs/release-notes-0.8.2.html                      |   2 +-
 docs/server-and-probe.html                         |  36 ++--
 openapi/README.md                                  |   2 +-
 pom.xml                                            |  16 +-
 src/main/resources/ignite.xml                      |   2 +-
 src/main/resources/log4j2.xml                      |   2 +-
 src/main/resources/nlpcraft.conf                   |  42 ++--
 .../scala/org/{ => apache}/nlpcraft/NCStart.scala  |  10 +-
 .../nlpcraft/common/NCErrorCodes.scala             |   2 +-
 .../{ => apache}/nlpcraft/common/NCException.scala |   2 +-
 .../{ => apache}/nlpcraft/common/NCService.scala   |   4 +-
 .../nlpcraft/common/ascii/NCAsciiLike.scala        |   2 +-
 .../nlpcraft/common/ascii/NCAsciiTable.scala       |   6 +-
 .../nlpcraft/common/blowfish/NCBlowfishHasher.java |   2 +-
 .../nlpcraft/common/config/NCConfigurable.scala    |   8 +-
 .../common/config/NCConfigurableJava.scala         |   2 +-
 .../nlpcraft/common/crypto/NCCipher.scala          |   4 +-
 .../nlpcraft/common/debug/NCLogHolder.scala        |   8 +-
 .../nlpcraft/common/makro/NCMacroParser.scala      |   6 +-
 .../nlpcraft/common/nlp/NCNlpSentence.scala        |   2 +-
 .../nlpcraft/common/nlp/NCNlpSentenceNote.scala    |   6 +-
 .../nlpcraft/common/nlp/NCNlpSentenceToken.scala   |   4 +-
 .../common/nlp/NCNlpSentenceTokenBuffer.scala      |   2 +-
 .../common/nlp/core/NCNlpCoreManager.scala         |  10 +-
 .../nlpcraft/common/nlp/core/NCNlpCoreToken.scala  |   2 +-
 .../common/nlp/core/NCNlpPorterStemmer.scala       |   2 +-
 .../nlpcraft/common/nlp/core/NCNlpTokenizer.scala  |   4 +-
 .../nlp/core/opennlp/NCOpenNlpTokenizer.scala      |   6 +-
 .../nlp/core/stanford/NCStanfordTokenizer.scala    |   6 +-
 .../common/nlp/dict/NCDictionaryManager.scala      |   8 +-
 .../common/nlp/dict/NCDictionaryType.scala         |   2 +-
 .../common/nlp/numeric/NCNumericGenerator.scala    |   2 +-
 .../common/nlp/numeric/NCNumericManager.scala      |   8 +-
 .../nlpcraft/common/nlp/pos/NCPennTreebank.scala   |   2 +-
 .../common/opencensus/NCOpenCensusTrace.scala      |   4 +-
 .../org/{ => apache}/nlpcraft/common/package.scala |   6 +-
 .../nlpcraft/common/socket/NCSocket.scala          |   6 +-
 .../nlpcraft/common/util/NCIdGenerator.java        |   2 +-
 .../nlpcraft/common/util/NCUtils.scala             |   6 +-
 .../nlpcraft/common/version/NCVersion.scala        |   4 +-
 .../org/{ => apache}/nlpcraft/examples/README.md   |   0
 .../nlpcraft/examples/alarm/AlarmModel.java        |  18 +-
 .../nlpcraft/examples/alarm/AlarmTest.java         |   8 +-
 .../{ => apache}/nlpcraft/examples/alarm/README.md |  10 +-
 .../nlpcraft/examples/alarm/alarm_model.json       |   0
 .../nlpcraft/examples/echo/EchoModel.scala         |   4 +-
 .../nlpcraft/examples/echo/EchoTest.java           |   8 +-
 .../{ => apache}/nlpcraft/examples/echo/README.md  |  10 +-
 .../examples/helloworld/HelloWorldModel.java       |   6 +-
 .../examples/helloworld/HelloWorldTest.java        |   8 +-
 .../nlpcraft/examples/helloworld/README.md         |  10 +-
 .../examples/lightswitch/LightSwitchModel.scala    |   8 +-
 .../examples/lightswitch/LightSwitchTest.java      |   6 +-
 .../nlpcraft/examples/lightswitch/README.md        |  10 +-
 .../examples/lightswitch/lightswitch_model.yaml    |   0
 .../examples/misc/darksky/DarkSkyException.java    |   2 +-
 .../examples/misc/darksky/DarkSkyService.java      |   2 +-
 .../misc/geo/cities/CitiesDataProvider.java        |   6 +-
 .../nlpcraft/examples/misc/geo/cities/City.java    |   2 +-
 .../examples/misc/geo/cities/CityData.java         |   2 +-
 .../examples/misc/geo/cities/cities_timezones.txt  |   0
 .../examples/misc/geo/keycdn/GeoManager.java       |   8 +-
 .../misc/geo/keycdn/beans/GeoDataBean.java         |   2 +-
 .../misc/geo/keycdn/beans/ResponseBean.java        |   2 +-
 .../misc/geo/keycdn/beans/ResponseDataBean.java    |   2 +-
 .../nlpcraft/examples/phone/PhoneModel.java        |   6 +-
 .../nlpcraft/examples/phone/PhoneTest.java         |   8 +-
 .../{ => apache}/nlpcraft/examples/phone/README.md |  10 +-
 .../nlpcraft/examples/phone/phone_model.json       |   0
 .../nlpcraft/examples/sql/SqlModel.scala           |  12 +-
 .../nlpcraft/examples/sql/SqlModelTest.scala       |   6 +-
 .../nlpcraft/examples/sql/db/SqlAccess.scala       |   4 +-
 .../nlpcraft/examples/sql/db/SqlBuilder.scala      |   8 +-
 .../nlpcraft/examples/sql/db/SqlResult.scala       |   2 +-
 .../nlpcraft/examples/sql/db/SqlServer.scala       |   4 +-
 .../nlpcraft/examples/sql/db/SqlValueLoader.scala  |   6 +-
 .../nlpcraft/examples/sql/db/model.png             | Bin
 .../nlpcraft/examples/sql/db/northwind.sql         |   0
 .../nlpcraft/examples/sql/db/sample_questions.txt  |   0
 .../nlpcraft/examples/sql/sql_model.yaml           |  62 +++---
 .../{ => apache}/nlpcraft/examples/time/README.md  |  10 +-
 .../nlpcraft/examples/time/TimeModel.java          |  24 +--
 .../nlpcraft/examples/time/TimeModelApp.java       |   4 +-
 .../nlpcraft/examples/time/TimeTest.java           |   8 +-
 .../nlpcraft/examples/time/time_model.yaml         |   0
 .../nlpcraft/examples/weather/README.md            |  10 +-
 .../nlpcraft/examples/weather/WeatherModel.java    |  14 +-
 .../examples/weather/WeatherResultWrapper.java     |   2 +-
 .../nlpcraft/examples/weather/WeatherTest.java     |  10 +-
 .../nlpcraft/examples/weather/weather_model.json   |   0
 .../org/{ => apache}/nlpcraft/model/NCCompany.java |   2 +-
 .../org/{ => apache}/nlpcraft/model/NCContext.java |   2 +-
 .../nlpcraft/model/NCConversation.java             |   2 +-
 .../nlpcraft/model/NCCustomElement.java            |   2 +-
 .../nlpcraft/model/NCCustomParser.java             |   2 +-
 .../{ => apache}/nlpcraft/model/NCCustomWord.java  |   2 +-
 .../org/{ => apache}/nlpcraft/model/NCElement.java |   6 +-
 .../org/{ => apache}/nlpcraft/model/NCIntent.java  |   4 +-
 .../{ => apache}/nlpcraft/model/NCIntentMatch.java |   4 +-
 .../{ => apache}/nlpcraft/model/NCIntentRef.java   |   4 +-
 .../{ => apache}/nlpcraft/model/NCIntentSkip.java  |   4 +-
 .../{ => apache}/nlpcraft/model/NCIntentTerm.java  |   4 +-
 .../{ => apache}/nlpcraft/model/NCLifecycle.java   |   2 +-
 .../{ => apache}/nlpcraft/model/NCMetadata.java    |   4 +-
 .../org/{ => apache}/nlpcraft/model/NCModel.java   |   4 +-
 .../nlpcraft/model/NCModelAdapter.java             |   4 +-
 .../nlpcraft/model/NCModelFactory.java             |   4 +-
 .../nlpcraft/model/NCModelFileAdapter.java         |  10 +-
 .../{ => apache}/nlpcraft/model/NCModelView.java   |   4 +-
 .../{ => apache}/nlpcraft/model/NCRejection.java   |   2 +-
 .../org/{ => apache}/nlpcraft/model/NCRequest.java |   2 +-
 .../org/{ => apache}/nlpcraft/model/NCResult.java  |   6 +-
 .../org/{ => apache}/nlpcraft/model/NCToken.java   |   4 +-
 .../org/{ => apache}/nlpcraft/model/NCUser.java    |   2 +-
 .../org/{ => apache}/nlpcraft/model/NCValue.java   |   2 +-
 .../{ => apache}/nlpcraft/model/NCValueLoader.java |   2 +-
 .../org/{ => apache}/nlpcraft/model/NCVariant.java |   2 +-
 .../model/factories/basic/NCBasicModelFactory.java |  14 +-
 .../model/factories/basic/package-info.java        |   2 +-
 .../factories/spring/NCSpringModelFactory.java     |  14 +-
 .../model/factories/spring/package-info.java       |   2 +-
 .../nlpcraft/model/impl/NCCompanyImpl.java         |   4 +-
 .../nlpcraft/model/impl/NCModelImpl.scala          |   6 +-
 .../nlpcraft/model/impl/NCTokenImpl.scala          |  10 +-
 .../nlpcraft/model/impl/NCTokenLogger.scala        |  12 +-
 .../nlpcraft/model/impl/NCTokenPimp.scala          |   4 +-
 .../nlpcraft/model/impl/NCUserImpl.java            |   4 +-
 .../nlpcraft/model/impl/NCValueImpl.java           |   4 +-
 .../nlpcraft/model/impl/NCVariantImpl.java         |   4 +-
 .../nlpcraft/model/impl/json/NCElementJson.java    |   2 +-
 .../nlpcraft/model/impl/json/NCMacroJson.java      |   2 +-
 .../nlpcraft/model/impl/json/NCModelJson.java      |   4 +-
 .../nlpcraft/model/impl/json/NCValueJson.java      |   2 +-
 .../model/intent/impl/NCIntentDslCompiler.scala    |  10 +-
 .../model/intent/impl/NCIntentScanner.scala        |   8 +-
 .../model/intent/impl/NCIntentSolver.scala         |  18 +-
 .../model/intent/impl/NCIntentSolverEngine.scala   |  18 +-
 .../model/intent/impl/NCIntentSolverInput.scala    |   4 +-
 .../model/intent/impl/NCIntentSolverResult.scala   |   4 +-
 .../model/intent/impl/NCIntentSolverVariant.scala  |   4 +-
 .../model/intent/impl/antlr4/NCIntentDsl.g4        |   0
 .../model/intent/impl/antlr4/NCIntentDsl.interp    |   0
 .../model/intent/impl/antlr4/NCIntentDsl.tokens    |   0
 .../impl/antlr4/NCIntentDslBaseListener.java       |   4 +-
 .../intent/impl/antlr4/NCIntentDslBaseVisitor.java |   4 +-
 .../intent/impl/antlr4/NCIntentDslLexer.interp     |   0
 .../model/intent/impl/antlr4/NCIntentDslLexer.java |   7 +-
 .../intent/impl/antlr4/NCIntentDslLexer.tokens     |   0
 .../intent/impl/antlr4/NCIntentDslListener.java    |   4 +-
 .../intent/impl/antlr4/NCIntentDslParser.java      |   7 +-
 .../intent/impl/antlr4/NCIntentDslVisitor.java     |   4 +-
 .../model/intent/utils/NCDslFlowItem.scala         |   2 +-
 .../nlpcraft/model/intent/utils/NCDslIntent.scala  |   2 +-
 .../nlpcraft/model/intent/utils/NCDslTerm.java     |   4 +-
 .../model/intent/utils/NCDslTokenChecker.scala     |   6 +-
 .../model/intent/utils/NCDslTokenPredicate.java    |   6 +-
 .../model/intent/utils/NCDslTokenQualifier.scala   |   6 +-
 .../model/opencensus/NCBaseTraceExporter.java      |   4 +-
 .../model/opencensus/NCJaegerExporter.java         |   6 +-
 .../model/opencensus/NCPrometheusExporter.java     |   8 +-
 .../opencensus/NCStackdriverStatsExporter.java     |   8 +-
 .../opencensus/NCStackdriverTraceExporter.java     |   8 +-
 .../model/opencensus/NCZipkinExporter.java         |   6 +-
 .../nlpcraft/model/opencensus/package-info.java    |   2 +-
 .../opencensus/stats/NCOpenCensusModelStats.scala  |   2 +-
 .../{ => apache}/nlpcraft/model/package-info.java  |   2 +-
 .../org/{ => apache}/nlpcraft/model/package.scala  |   4 +-
 .../model/tools/sqlgen/NCSqlAggregate.java         |   2 +-
 .../nlpcraft/model/tools/sqlgen/NCSqlColumn.java   |   2 +-
 .../model/tools/sqlgen/NCSqlCondition.java         |   2 +-
 .../model/tools/sqlgen/NCSqlDateRange.java         |   2 +-
 .../model/tools/sqlgen/NCSqlException.java         |   2 +-
 .../nlpcraft/model/tools/sqlgen/NCSqlFunction.java |   2 +-
 .../model/tools/sqlgen/NCSqlInCondition.java       |   2 +-
 .../nlpcraft/model/tools/sqlgen/NCSqlJoin.java     |   2 +-
 .../nlpcraft/model/tools/sqlgen/NCSqlLimit.java    |   2 +-
 .../model/tools/sqlgen/NCSqlModelGenerator.java    |   6 +-
 .../nlpcraft/model/tools/sqlgen/NCSqlQuery.java    |   2 +-
 .../nlpcraft/model/tools/sqlgen/NCSqlSchema.java   |   2 +-
 .../model/tools/sqlgen/NCSqlSchemaBuilder.java     |   6 +-
 .../model/tools/sqlgen/NCSqlSimpleCondition.java   |   2 +-
 .../nlpcraft/model/tools/sqlgen/NCSqlSort.java     |   2 +-
 .../nlpcraft/model/tools/sqlgen/NCSqlTable.java    |   2 +-
 .../nlpcraft/model/tools/sqlgen/NCSqlUtils.java    |   6 +-
 .../model/tools/sqlgen/impl/NCSqlBeans.scala       |   4 +-
 .../sqlgen/impl/NCSqlModelGeneratorImpl.scala      |  12 +-
 .../tools/sqlgen/impl/NCSqlUtilsAdapter.scala      |   6 +-
 .../nlpcraft/model/tools/sqlgen/package-info.java  |   2 +-
 .../nlpcraft/model/tools/test/NCTestClient.java    |   2 +-
 .../model/tools/test/NCTestClientBuilder.java      |   6 +-
 .../model/tools/test/NCTestClientException.java    |   2 +-
 .../nlpcraft/model/tools/test/NCTestResult.java    |   2 +-
 .../nlpcraft/model/tools/test/package-info.java    |   2 +-
 .../org/{ => apache}/nlpcraft/probe/NCProbe.scala  |   2 +-
 .../{ => apache}/nlpcraft/probe/NCProbeBoot.scala  |  56 +++---
 .../nlpcraft/probe/embedded/NCEmbeddedProbe.java   |  12 +-
 .../nlpcraft/probe/embedded/NCEmbeddedResult.java  |   4 +-
 .../nlpcraft/probe/embedded/package-info.java      |   2 +-
 .../nlpcraft/probe/mgrs/NCModelDecorator.scala     |   4 +-
 .../nlpcraft/probe/mgrs/NCProbeMessage.scala       |   6 +-
 .../nlpcraft/probe/mgrs/NCSynonym.scala            |   8 +-
 .../nlpcraft/probe/mgrs/NCSynonymChunk.scala       |   6 +-
 .../nlpcraft/probe/mgrs/NCSynonymChunkKind.scala   |   2 +-
 .../nlpcraft/probe/mgrs/cmd/NCCommandManager.scala |  16 +-
 .../probe/mgrs/conn/NCConnectionManager.scala      |  20 +-
 .../conversation/NCConversationDescriptor.scala    |  10 +-
 .../mgrs/conversation/NCConversationManager.scala  |   4 +-
 .../probe/mgrs/deploy/NCDeployManager.scala        |  14 +-
 .../mgrs/dialogflow/NCDialogFlowManager.scala      |   6 +-
 .../probe/mgrs/lifecycle/NCLifecycleManager.scala  |   8 +-
 .../nlpcraft/probe/mgrs/model/NCModelManager.scala |  20 +-
 .../probe/mgrs/model/NCModelSynonymDsl.scala       |   4 +-
 .../mgrs/model/NCModelSynonymDslCompiler.scala     |  10 +-
 .../probe/mgrs/model/antlr4/NCSynonymDsl.g4        |   0
 .../probe/mgrs/model/antlr4/NCSynonymDsl.interp    |   0
 .../probe/mgrs/model/antlr4/NCSynonymDsl.tokens    |   0
 .../model/antlr4/NCSynonymDslBaseListener.java     |   4 +-
 .../mgrs/model/antlr4/NCSynonymDslBaseVisitor.java |   4 +-
 .../mgrs/model/antlr4/NCSynonymDslLexer.interp     |   0
 .../probe/mgrs/model/antlr4/NCSynonymDslLexer.java |   7 +-
 .../mgrs/model/antlr4/NCSynonymDslLexer.tokens     |   0
 .../mgrs/model/antlr4/NCSynonymDslListener.java    |   4 +-
 .../mgrs/model/antlr4/NCSynonymDslParser.java      |   7 +-
 .../mgrs/model/antlr4/NCSynonymDslVisitor.java     |   4 +-
 .../nlpcraft/probe/mgrs/nlp/NCProbeEnricher.scala  |   8 +-
 .../probe/mgrs/nlp/NCProbeEnrichmentManager.scala  |  54 +++---
 .../aggregation/NCAggregationEnricher.scala        |  14 +-
 .../dictionary/NCDictionaryEnricher.scala          |  14 +-
 .../mgrs/nlp/enrichers/limit/NCLimitEnricher.scala |  16 +-
 .../mgrs/nlp/enrichers/model/NCModelEnricher.scala |  16 +-
 .../nlp/enrichers/post/NCPostEnrichProcessor.scala |  14 +-
 .../enrichers/relation/NCRelationEnricher.scala    |  14 +-
 .../mgrs/nlp/enrichers/sort/NCSortEnricher.scala   |  14 +-
 .../enrichers/stopword/NCStopWordEnricher.scala    |  12 +-
 .../suspicious/NCSuspiciousNounsEnricher.scala     |  10 +-
 .../probe/mgrs/nlp/impl/NCRequestImpl.scala        |   6 +-
 .../mgrs/nlp/validate/NCValidateException.scala    |   4 +-
 .../mgrs/nlp/validate/NCValidateManager.scala      |   8 +-
 .../{ => apache}/nlpcraft/server/NCServer.scala    |  54 +++---
 .../nlpcraft/server/apicodes/NCApiStatusCode.scala |   2 +-
 .../nlpcraft/server/company/NCCompanyManager.scala |  12 +-
 .../server/feedback/NCFeedbackManager.scala        |  10 +-
 .../nlpcraft/server/geo/NCGeoManager.scala         |   8 +-
 .../nlpcraft/server/geo/NCGeoModel.scala           |   2 +-
 .../server/geo/tools/NCGeoNamesGenerator.scala     |   6 +-
 .../geo/tools/NCGeoStateNamesGenerator.scala       |   4 +-
 .../geo/tools/NCGeoSyntheticNamesGenerator.scala   |  10 +-
 .../geo/tools/metro/NCGeoMetroGenerator.scala      |   6 +-
 .../nlpcraft/server/geo/tools/metro/ga_metro.txt   |   0
 .../server/geo/tools/unstats/NCUnsdStatsGeo.scala  |   2 +-
 .../geo/tools/unstats/NCUnsdStatsService.scala     |   4 +-
 .../nlpcraft/server/geo/tools/unstats/codes.txt    |   0
 .../server/geo/tools/unstats/subcontinents.txt     |   0
 .../server/ignite/NCIgniteCacheStore.scala         |   6 +-
 .../server/ignite/NCIgniteExceptions.scala         |   4 +-
 .../nlpcraft/server/ignite/NCIgniteHelpers.scala   |   2 +-
 .../nlpcraft/server/ignite/NCIgniteInstance.scala  |   2 +-
 .../nlpcraft/server/ignite/NCIgniteRunner.scala    |   4 +-
 .../{ => apache}/nlpcraft/server/json/NCJson.scala |   4 +-
 .../nlpcraft/server/json/NCJsonException.scala     |   4 +-
 .../nlpcraft/server/json/NCJsonLike.scala          |   2 +-
 .../server/lifecycle/NCServerLifecycle.scala       |   4 +-
 .../lifecycle/NCServerLifecycleManager.scala       |   8 +-
 .../lifecycle/opencensus/NCBaseTraceExporter.scala |   4 +-
 .../lifecycle/opencensus/NCJaegerExporter.scala    |   4 +-
 .../opencensus/NCPrometheusExporter.scala          |   6 +-
 .../opencensus/NCStackdriverStatsExporter.scala    |   8 +-
 .../opencensus/NCStackdriverTraceExporter.scala    |   6 +-
 .../lifecycle/opencensus/NCZipkinExporter.scala    |   4 +-
 .../nlpcraft/server/mdo/NCCompanyMdo.scala         |   6 +-
 .../nlpcraft/server/mdo/NCFeedbackMdo.scala        |   6 +-
 .../nlpcraft/server/mdo/NCProbeMdo.scala           |   4 +-
 .../nlpcraft/server/mdo/NCProbeModelMdo.scala      |   4 +-
 .../nlpcraft/server/mdo/NCQueryStateMdo.scala      |   6 +-
 .../nlpcraft/server/mdo/NCUserMdo.scala            |   8 +-
 .../nlpcraft/server/mdo/NCUserPropertyMdo.scala    |   6 +-
 .../nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala  |  12 +-
 .../nlpcraft/server/mdo/impl/NCMdoEntity.java      |   2 +-
 .../nlpcraft/server/mdo/impl/NCMdoField.java       |   2 +-
 .../server/nlp/core/NCNlpNerEnricher.scala         |   6 +-
 .../nlpcraft/server/nlp/core/NCNlpParser.scala     |   4 +-
 .../server/nlp/core/NCNlpServerManager.scala       |  20 +-
 .../nlpcraft/server/nlp/core/NCNlpWord.scala       |   2 +-
 .../nlp/core/google/NCGoogleNerEnricher.scala      |  10 +-
 .../nlp/core/opennlp/NCOpenNlpNerEnricher.scala    |  14 +-
 .../server/nlp/core/opennlp/NCOpenNlpParser.scala  |  14 +-
 .../server/nlp/core/spacy/NCSpaCyNerEnricher.scala |  12 +-
 .../nlp/core/stanford/NCStanfordAnnotator.scala    |   2 +-
 .../nlp/core/stanford/NCStanfordCoreManager.scala  |   8 +-
 .../nlp/core/stanford/NCStanfordNerEnricher.scala  |  10 +-
 .../nlp/core/stanford/NCStanfordParser.scala       |  10 +-
 .../nlp/core/stanford/NCStanfordTokenizer.scala    |   4 +-
 .../server/nlp/enrichers/NCServerEnricher.scala    |   8 +-
 .../nlp/enrichers/NCServerEnrichmentManager.scala  |  32 +--
 .../nlp/enrichers/basenlp/NCBaseNlpEnricher.scala  |  12 +-
 .../coordinate/NCCoordinatesEnricher.scala         |  14 +-
 .../nlp/enrichers/date/NCDateConstants.scala       |   6 +-
 .../server/nlp/enrichers/date/NCDateEnricher.scala |  14 +-
 .../nlp/enrichers/date/NCDateFormatType.scala      |   2 +-
 .../server/nlp/enrichers/date/NCDateParser.scala   |   2 +-
 .../server/nlp/enrichers/date/NCDateRange.scala    |   4 +-
 .../nlp/enrichers/date/tools/NCDateGenerator.scala |  10 +-
 .../server/nlp/enrichers/geo/NCGeoEnricher.scala   |  18 +-
 .../nlp/enrichers/numeric/NCNumericEnricher.scala  |  10 +-
 .../nlp/enrichers/quote/NCQuoteEnricher.scala      |  12 +-
 .../enrichers/stopword/NCStopWordEnricher.scala    |  16 +-
 .../server/nlp/preproc/NCPreProcessManager.scala   |   6 +-
 .../server/nlp/spell/NCSpellCheckManager.scala     |   6 +-
 .../server/nlp/synonym/NCSynonymManager.scala      |  12 +-
 .../server/nlp/synonym/NCSynonymType.scala         |   2 +-
 .../server/nlp/wordnet/NCWordNetManager.scala      |   6 +-
 .../opencensus/NCOpenCensusServerStats.scala       |   2 +-
 .../nlpcraft/server/probe/NCProbeManager.scala     |  32 +--
 .../server/proclog/NCProcessLogManager.scala       |  12 +-
 .../nlpcraft/server/query/NCQueryManager.scala     |  26 +--
 .../nlpcraft/server/rest/NCBasicRestApi.scala      |  22 +--
 .../nlpcraft/server/rest/NCRestApi.scala           |   4 +-
 .../nlpcraft/server/rest/NCRestManager.scala       |   8 +-
 .../{ => apache}/nlpcraft/server/sql/NCSql.scala   |   8 +-
 .../nlpcraft/server/sql/NCSqlBatch.scala           |   2 +-
 .../nlpcraft/server/sql/NCSqlManager.scala         |  14 +-
 .../server/tx/NCTxCacheStoreSessionListener.scala  |   2 +-
 .../nlpcraft/server/tx/NCTxManager.scala           |   8 +-
 .../nlpcraft/server/user/NCUserManager.scala       |  18 +-
 src/test/resources/log4j2.xml                      |   2 +-
 .../org/{ => apache}/nlpcraft/NCTestProbe.scala    |   4 +-
 .../{ => apache}/nlpcraft/NCTestStartStop.scala    |   4 +-
 .../nlpcraft/common/ascii/NCAsciiTableSpec.scala   |   2 +-
 .../common/blowfish/NCBlowfishHasherSpec.scala     |   2 +-
 .../nlpcraft/common/crypto/NCCipherSpec.scala      |   4 +-
 .../nlpcraft/common/makro/NCMacroParserSpec.scala  |   4 +-
 .../nlpcraft/common/util/NCUtilsSpec.scala         |   4 +-
 .../nlpcraft/model/intent/dsl/NCDslTest.java       |   8 +-
 .../nlpcraft/model/intent/dsl/NCDslTestModel.scala |   6 +-
 .../nlpcraft/model/intent/dsl/dsl_test_model.yaml  |   0
 .../intent/impl/NCIntentSolverEngineSpec.scala     |   4 +-
 .../model/tools/NCSqlModelEngineSpec.scala         |   2 +-
 .../nlpcraft/models/nested/NCNestedTestModel.scala |   4 +-
 .../nlpcraft/models/stm/NCStmTestModel.scala       |   4 +-
 .../nlpcraft/models/stm/NCStmTestModelSpec.java    |  12 +-
 .../enrichers/date/tools/NCDateGeneratorSpec.scala |  12 +-
 359 files changed, 1364 insertions(+), 1375 deletions(-)

diff --git a/README.md b/README.md
index 38accc4..e4588be 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
 NLPCraft is free and easy to use, it securely works with any private data source, and has no hardware or software 
 lock-in:
 
- * View & run [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples)
+ * View & run [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples)
  * Latest [Javadoc](https://github.com/apache/incubator-nlpcraft/apis/latest/index.html) and [REST APIs](https://nlpcraft.org/using-rest.html)
  * Download & Maven/Grape/Gradle/SBT [instructions](https://nlpcraft.org/download.html)
  * File a bug or improvement in [JIRA](https://issues.apache.org/jira/projects/NLPCRAFT)
diff --git a/docs/_data/releases.yml b/docs/_data/releases.yml
index 7c08bf8..e808b87 100644
--- a/docs/_data/releases.yml
+++ b/docs/_data/releases.yml
@@ -15,14 +15,15 @@
 # limitations under the License.
 #
 
-- version: 0.8.2
-  date: Jan 14, 2020
-  zip_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.8.2/nlpcraft-0.8.2.zip
-  md5_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.8.2/nlpcraft-0.8.2.zip.md5
-  sha1_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.8.2/nlpcraft-0.8.2.zip.sha1
-  sha256_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.8.2/nlpcraft-0.8.2.zip.sha256
-  pgp_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.8.2/nlpcraft-0.8.2.zip.sig
-  github_link: https://github.com/apache/incubator-nlpcraft/tree/0.8.2
+- version: 0.5.0
+  date: Apr 16, 2020
+  zip_name: apache-nlpcraft-0.5.0.zip
+  zip_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.5.0/apache-nlpcraft-0.5.0.zip
+  md5_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.5.0/apache-nlpcraft-0.5.0.zip.md5
+  sha1_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.5.0/apache-nlpcraft-0.5.0.zip.sha1
+  sha256_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.5.0/apache-nlpcraft-0.5.0.zip.sha256
+  pgp_url: https://github.com/apache/incubator-nlpcraft/releases/download/0.5.0/apache-nlpcraft-0.5.0.zip.sig
+  github_link: https://github.com/apache/incubator-nlpcraft/tree/0.5.0
   dockerhub_link: https://hub.docker.com/r/nlpcraftserver/server
   backward_compatible: yes
 
diff --git a/docs/_includes/quick-links.html b/docs/_includes/quick-links.html
index 89e205c..15b7fa6 100644
--- a/docs/_includes/quick-links.html
+++ b/docs/_includes/quick-links.html
@@ -17,7 +17,7 @@
 
 <li class="side-nav-title">Quick Links</li>
 <li>
-    <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples">Examples</a>
+    <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples">Examples</a>
 </li>
 <li>
     <i class="fab fa-fw fa-java mr-2"></i><a target="_" href="/apis/latest/index.html">Javadoc</a>
diff --git a/docs/_layouts/blog.html b/docs/_layouts/blog.html
index 96c1689..05c4c7a 100644
--- a/docs/_layouts/blog.html
+++ b/docs/_layouts/blog.html
@@ -49,7 +49,7 @@ layout: default
                     <li>
                         <img alt="" class="quick-link-img mr-2" src="/images/github_logo.png"><a
                         target="github"
-                        href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples">Examples</a>
+                        href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples">Examples</a>
                     </li>
                     <li>
                         <i class="fab fa-java mr-2"></i><a target="_" href="/apis/latest/index.html">Javadoc</a>
diff --git a/docs/_layouts/release-notes.html b/docs/_layouts/release-notes.html
index 853c107..4bd4255 100644
--- a/docs/_layouts/release-notes.html
+++ b/docs/_layouts/release-notes.html
@@ -53,7 +53,7 @@ layout: default
                     <li>
                         <img alt="" class="quick-link-img mr-2" src="/images/github_logo.png"><a
                         target="github"
-                        href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples">Examples</a>
+                        href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples">Examples</a>
                     </li>
                     <li>
                         <i class="fab fa-java mr-2"></i><a target="_" href="/apis/latest/index.html">Javadoc</a>
diff --git a/docs/basic-concepts.html b/docs/basic-concepts.html
index 1539c86..c4d0df2 100644
--- a/docs/basic-concepts.html
+++ b/docs/basic-concepts.html
@@ -40,7 +40,7 @@ id: basic_concepts
             Data model is a central concept in NLPCraft. It defines natural language interface to your public or
             private data sources like on-premise database or a cloud SaaS application.
             NLPCraft employs <em>model-as-a-code</em> approach where entire data model is
-            an implementation of <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a>
+            an implementation of <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a>
             interface which can be developed using any JVM programming language like Java, Scala, Kotlin, or Groovy.
         </p>
         <p>
diff --git a/docs/data-model.html b/docs/data-model.html
index 4275c73..78516f0 100644
--- a/docs/data-model.html
+++ b/docs/data-model.html
@@ -28,7 +28,7 @@ id: data_model
             Data model is a central concept in NLPCraft defining interface to your data sources
             like a database or a SaaS application.
             NLPCraft employs <em>model-as-a-code</em> approach where entire data model is an implementation of
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a> interface which
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> interface which
             can be developed using any JVM programming language like Java, Scala, Kotlin, or Groovy.
         </p>
         <p>
@@ -85,32 +85,32 @@ id: data_model
     <section id="lifecycle">
         <span class="section-title">Model Lifecycle</span>
         <p>
-            Data model is an implementation of <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a> interface.
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a> interface has
+            Data model is an implementation of <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> interface.
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> interface has
             defaults for most of its methods. These are the only methods that need to be implemented by its sub-class:
         </p>
         <ul>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getId--">getId()</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getName--">getName()</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getVersion--">getVersion()</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getId--">getId()</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getName--">getName()</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getVersion--">getVersion()</a></li>
         </ul>
         <p>
-            You can either implement <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a>
+            You can either implement <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a>
             interface directly or use one of the adapters (recommended in most cases):
         </p>
         <ul>
             <li>
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelAdapter.html">NCModelAdapter</a> - when
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelAdapter.html">NCModelAdapter</a> - when
                 entire model definition is in sub-class source code.
             </li>
             <li>
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> - when
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> - when
                 using external JSON/YAML declaration for model definition.
             </li>
         </ul>
         <p>
             Note that you can also use 3rd party IoC frameworks like <a target=_ href="https://spring.io">Spring</a> to construct your data models. See
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelFactory.html">NCModelFactory</a> for more information.
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFactory.html">NCModelFactory</a> for more information.
         </p>
         <div class="bq success">
             <p>
@@ -136,16 +136,16 @@ id: data_model
         <span class="section-sub-title">Callbacks</span>
         <p>
             There are two callbacks on
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a> interface
-            (by way of extending <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCLifecycle.html">NCLifecycle</a> interface) that you can optionally override to affect the the default lifecycle behavior:
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> interface
+            (by way of extending <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCLifecycle.html">NCLifecycle</a> interface) that you can optionally override to affect the the default lifecycle behavior:
         </p>
         <ul>
             <li>
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCLifecycle.html#onInit--">onInit()</a> - called
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCLifecycle.html#onInit--">onInit()</a> - called
                 right after the model was loaded and deployed.
             </li>
             <li>
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCLifecycle.html#onDiscard--">onDiscard()</a> - called to
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCLifecycle.html#onDiscard--">onDiscard()</a> - called to
                 discard the data model when and only when data probe is orderly shutting down.
             </li>
         </ul>
@@ -157,27 +157,27 @@ id: data_model
         <ul>
             <li>
                 <a target="javadoc"
-                   href="/apis/latest/org/nlpcraft/model/NCModel.html#onParsedVariant-org.nlpcraft.model.NCVariant-">onParsedVariant(...)</a>
+                   href="/apis/latest/org/apache/nlpcraft/model/NCModel.html#onParsedVariant-org.apache.nlpcraft.model.NCVariant-">onParsedVariant(...)</a>
             </li>
             <li>
                 <a target="javadoc"
-                   href="/apis/latest/org/nlpcraft/model/NCModel.html#onContext-org.nlpcraft.model.NCContext-">onContext(...)</a>
+                   href="/apis/latest/org/apache/nlpcraft/model/NCModel.html#onContext-org.apache.nlpcraft.model.NCContext-">onContext(...)</a>
             </li>
             <li>
                 <a target="javadoc"
-                   href="/apis/latest/org/nlpcraft/model/NCModel.html#onMatchedIntent-org.nlpcraft.model.NCIntentMatch-">onMatchedIntent(...)</a>
+                   href="/apis/latest/org/apache/nlpcraft/model/NCModel.html#onMatchedIntent-org.apache.nlpcraft.model.NCIntentMatch-">onMatchedIntent(...)</a>
             </li>
             <li>
                 <a target="javadoc"
-                   href="/apis/latest/org/nlpcraft/model/NCModel.html#onResult-org.nlpcraft.model.NCIntentMatch-org.nlpcraft.model.NCResult-">onResult(...)</a>
+                   href="/apis/latest/org/apache/nlpcraft/model/NCModel.html#onResult-org.apache.nlpcraft.model.NCIntentMatch-org.apache.nlpcraft.model.NCResult-">onResult(...)</a>
             </li>
             <li>
                 <a target="javadoc"
-                   href="/apis/latest/org/nlpcraft/model/NCModel.html#onError-org.nlpcraft.model.NCContext-java.lang.Throwable-">onError(...)</a>
+                   href="/apis/latest/org/apache/nlpcraft/model/NCModel.html#onError-org.apache.nlpcraft.model.NCContext-java.lang.Throwable-">onError(...)</a>
             </li>
             <li>
                 <a target="javadoc"
-                   href="/apis/latest/org/nlpcraft/model/NCModel.html#onRejection-org.nlpcraft.model.NCIntentMatch-org.nlpcraft.model.NCRejection-">onRejection(...)</a>
+                   href="/apis/latest/org/apache/nlpcraft/model/NCModel.html#onRejection-org.apache.nlpcraft.model.NCIntentMatch-org.apache.nlpcraft.model.NCRejection-">onRejection(...)</a>
             </li>
         </ul>
         <div class="bq info">
@@ -185,9 +185,9 @@ id: data_model
             <p>
                 Callbacks
                 <a target="javadoc"
-                   href="/apis/latest/org/nlpcraft/model/NCModel.html#onContext-org.nlpcraft.model.NCContext-">onContext(...)</a> and
+                   href="/apis/latest/org/apache/nlpcraft/model/NCModel.html#onContext-org.apache.nlpcraft.model.NCContext-">onContext(...)</a> and
                 <a target="javadoc"
-                   href="/apis/latest/org/nlpcraft/model/NCModel.html#onMatchedIntent-org.nlpcraft.model.NCIntentMatch-">onMatchedIntent(...)</a>
+                   href="/apis/latest/org/apache/nlpcraft/model/NCModel.html#onMatchedIntent-org.apache.nlpcraft.model.NCIntentMatch-">onMatchedIntent(...)</a>
                 are especially handy to perform a soft reset on the conversation context. Read their Javadoc documentation
                 to understand these callbacks protocol.
             </p>
@@ -204,7 +204,7 @@ id: data_model
                 security environment, devops hooks, etc.
             </p>
             <p>
-                See server and probe <a href="">configuration</a> as well as <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCProbeLifecycle.html">NCProbeLifecycle</a>
+                See server and probe <a href="">configuration</a> as well as <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCProbeLifecycle.html">NCProbeLifecycle</a>
                 interface for more details.
             </p>
         </div>
@@ -212,44 +212,44 @@ id: data_model
     <section id="config">
         <span class="section-title">Model Configuration</span>
         <p>
-            Apart from mandatory model <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getId--">ID</a>,
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getName--">name</a> and
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getVersion--">version</a>
+            Apart from mandatory model <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getId--">ID</a>,
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getName--">name</a> and
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getVersion--">version</a>
             there is a number of static model configurations that you can set. All of these properties have sensible
             defaults that you can override, when required, in either sub-classes or via external JSON/YAML declaration:
         </p>
         <ul>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getAdditionalStopWords--">getAdditionalStopWords</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">getEnabledBuiltInTokens</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getExamples--">getExamples</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getExcludedStopWords--">getExcludedStopWords</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getJiggleFactor--">getJiggleFactor</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMaxFreeWords--">getMaxFreeWords</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMaxSuspiciousWords--">getMaxSuspiciousWords</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMaxTokens--">getMaxTokens</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMaxTotalSynonyms--">getMaxTotalSynonyms</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMaxUnknownWords--">getMaxUnknownWords</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMaxWords--">getMaxWords</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMetadata--">getMetadata</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMinNonStopwords--">getMinNonStopwords</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMinTokens--">getMinTokens</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMinWords--">getMinWords</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getSuspiciousWords--">getSuspiciousWords</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#isDupSynonymsAllowed--">isDupSynonymsAllowed</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#isNonEnglishAllowed--">isNonEnglishAllowed</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#isNoNounsAllowed--">isNoNounsAllowed</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#isNotLatinCharsetAllowed--">isNotLatinCharsetAllowed</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#isNoUserTokensAllowed--">isNoUserTokensAllowed</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#isPermutateSynonyms--">isPermutateSynonyms</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#isSwearWordsAllowed--">isSwearWordsAllowed</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getAdditionalStopWords--">getAdditionalStopWords</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">getEnabledBuiltInTokens</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getExamples--">getExamples</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getExcludedStopWords--">getExcludedStopWords</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getJiggleFactor--">getJiggleFactor</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMaxFreeWords--">getMaxFreeWords</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMaxSuspiciousWords--">getMaxSuspiciousWords</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMaxTokens--">getMaxTokens</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMaxTotalSynonyms--">getMaxTotalSynonyms</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMaxUnknownWords--">getMaxUnknownWords</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMaxWords--">getMaxWords</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMetadata--">getMetadata</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMinNonStopwords--">getMinNonStopwords</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMinTokens--">getMinTokens</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMinWords--">getMinWords</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getSuspiciousWords--">getSuspiciousWords</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isDupSynonymsAllowed--">isDupSynonymsAllowed</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isNonEnglishAllowed--">isNonEnglishAllowed</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isNoNounsAllowed--">isNoNounsAllowed</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isNotLatinCharsetAllowed--">isNotLatinCharsetAllowed</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isNoUserTokensAllowed--">isNoUserTokensAllowed</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isPermutateSynonyms--">isPermutateSynonyms</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isSwearWordsAllowed--">isSwearWordsAllowed</a></li>
         </ul>
         <span class="section-sub-title">External JSON/YAML Declaration</span>
         <p>
             You can move out all the static model configuration into an external JSON or YAML file. To load that
-            configuration you need to use <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a>
+            configuration you need to use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a>
             adapter when creating your data model. Here are JSON and YAML templates and you can find more details in
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a> Javadoc and in
-            <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples">examples</a>.
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> Javadoc and in
+            <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples">examples</a>.
         </p>
 
         <nav>
@@ -325,14 +325,14 @@ intents:
             object can be abstract or have a physical existence.
         </p>
         <p>
-            Model element is an implementation of <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCElement.html">NCElement</a>
-            interface. <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a> provides
-            its elements via <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getElements--">getElements()</a> method.
+            Model element is an implementation of <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCElement.html">NCElement</a>
+            interface. <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> provides
+            its elements via <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getElements--">getElements()</a> method.
             Typically, you create model elements by either:
         </p>
         <ul>
             <li>
-                Implementing <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCElement.html">NCElement</a> interface directly, or
+                Implementing <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCElement.html">NCElement</a> interface directly, or
             </li>
             <li>
                 <U></U>sing JSON or YAML static model configuration (the preferred way in most cases).
@@ -340,7 +340,7 @@ intents:
         </ul>
         <p>
             Note that when you use external static model configuration with JSON or YAML you can still modify it after it was loaded
-            using <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a>
+            using <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a>
             adapter. It is particular convenient when synonyms or values are loaded separately from, or in
             addition to, the model elements themselves, i.e. from a database or another file.
         </p>
@@ -446,7 +446,7 @@ intents:
             ...
         </pre>
         <p>
-            During synonym matching NLPCraft uses <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getJiggleFactor--">jiggle factor</a> to rearrange (or "jiggle")
+            During synonym matching NLPCraft uses <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getJiggleFactor--">jiggle factor</a> to rearrange (or "jiggle")
             the individual words in the user input in attempt to match a given synonym. Jiggle factor is a measure of
             how much sparsity is allowed when user input words are reordered in attempt to match the multi-word
             synonyms. Zero means no reordering is allowed. One means that a word can move only one
@@ -476,7 +476,7 @@ intents:
         </p>
         <p>
             Note that this universal synonyms definition is used in the following
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCElement.html">NCElement</a> methods:
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCElement.html">NCElement</a> methods:
         </p>
         <ul>
             <li><code>getSynonyms()</code> - gets synonyms to match on.</li>
@@ -488,8 +488,8 @@ intents:
             together with option groups allow for significant simplification of this process.
             Macros let you give a name to an often used set of words or option groups and reuse it without
             repeating those words or option groups again and again. A model provides a list of macros via
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getMacros--">getMacros()</a> method on
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html">NCModelView</a> interface. Each macro
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMacros--">getMacros()</a> method on
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html">NCModelView</a> interface. Each macro
             has a name in a form of <code>&lt;X&gt;</code> where <code>X</code>
             is just any string, and a string value. Note that macros can be nested (but not recursive), i.e. macro value can include
             references to other macros. When macro name <code>X</code> is encountered in the synonym it gets recursively
@@ -699,9 +699,9 @@ intents:
         </p>
         <p>
             When a model element is recognized it is made available to the model's matching logic as an instance of
-            the <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html">NCToken</a> interface.
+            the <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a> interface.
             This interface has a method
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getValue--">getValue()</a> which
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getValue--">getValue()</a> which
             returns the name of the value, if any, by which
             that model element was recognized. That value name can be further used in intent matching.
         </p>
@@ -763,7 +763,7 @@ intents:
         <span id="groups" class="section-sub-title">Element Groups</span>
         <p>
             Each model element belongs to one or more groups. Model element provides its groups via
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelElement.html#getGroups--">getGroups()</a> method.
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelElement.html#getGroups--">getGroups()</a> method.
             By default, if element group is not specified, the element ID will act as its default group ID.
         </p>
         <p>
@@ -774,11 +774,11 @@ intents:
             Note that the proper grouping of the elements is also necessary for the correct operation of
             Short-Term-Memory (STM) in the conversational context
             when using intent-based matching. See
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCConversation.html">NCConversation</a>
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCConversation.html">NCConversation</a>
             for mode details.
         </p>
         <p>
-            Consider a <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html">NCToken</a> that 
+            Consider a <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a> that
             represents a previously found model element that is stored in the conversation. Such token
             will be overridden in the conversation by the more <b>recent token</b>
             from the <b>same group</b> - a critical rule of maintaining the proper conversational context.
@@ -789,7 +789,7 @@ intents:
         <span id="parent" class="section-sub-title">Element Parent</span>
         <p>
             Each model element can form an optional hierarchical relationship with other element by specifying its
-            parent element ID via <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelElement.html#getParnetId--">getParentID()</a> method. The main idea here is that sometimes model elements can act not only individually but
+            parent element ID via <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelElement.html#getParnetId--">getParentID()</a> method. The main idea here is that sometimes model elements can act not only individually but
             their place in the hierarchy can be important too for token and intent DSL.
         </p>
         <p>
@@ -894,7 +894,7 @@ intents:
         <p>
             Token DSL is a simple expression language for defining a single predicate over a token - a detected model
             element. Remember that unlike token DSL all other types of synonyms work with simple words (vs. tokens).
-            Here's a full <a target="github" href="https://github.com/apache/incubator-nlpcraft/blob/master/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4">ANTLR4 grammar</a> for token DSL.
+            Here's a full <a target="github" href="https://github.com/apache/incubator-nlpcraft/blob/master/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4">ANTLR4 grammar</a> for token DSL.
             Note that this is exactly the same syntax as
             used by <a href="intent-matching.html#syntax">intent DSL</a> for token predicates in intents - except for
             aliases which we will explain below.
@@ -1005,7 +1005,7 @@ intents:
                 <td><code>id</code></td>
                 <td>
                     <p>
-                        Token <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getId--">ID</a> as
+                        Token <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getId--">ID</a> as
                         a <code>java.lang.String</code> object.
                     </p>
                     <p>
@@ -1018,7 +1018,7 @@ intents:
                 <td><code>groups</code></td>
                 <td>
                     <p>
-                        Token <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getGroups--">groups</a>
+                        Token <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getGroups--">groups</a>
                         as <code>java.util.Collection</code> of token IDs.
                     </p>
                     <p>
@@ -1031,7 +1031,7 @@ intents:
                 <td><code>aliases</code></td>
                 <td>
                     <p>
-                        Token <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getAliases--">aliases</a>
+                        Token <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getAliases--">aliases</a>
                         as <code>java.util.Collection</code> of token aliases.
                     </p>
                     <p>
@@ -1044,7 +1044,7 @@ intents:
                 <td><code>startidx</code></td>
                 <td>
                     <p>
-                        Token start character <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getStartCharIndex--">index</a> in the original text.
+                        Token start character <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getStartCharIndex--">index</a> in the original text.
                     </p>
                     <p>
                         <b>Example:</b><br/>
@@ -1056,7 +1056,7 @@ intents:
                 <td><code>endidx</code></td>
                 <td>
                     <p>
-                        Token end character <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getStartCharIndex--">index</a> in the original text.
+                        Token end character <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getStartCharIndex--">index</a> in the original text.
                     </p>
                     <p>
                         <b>Example:</b><br/>
@@ -1068,7 +1068,7 @@ intents:
                 <td><code>parent</code></td>
                 <td>
                     <p>
-                        <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getParentId--">ID</a> of
+                        <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getParentId--">ID</a> of
                         the parent token as a <code>java.lang.String</code> object.
                     </p>
                     <p>
@@ -1081,7 +1081,7 @@ intents:
                 <td><code>ancestors</code></td>
                 <td>
                     <p>
-                        <code>java.util.List</code> of all token <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getParentId--">parent ID</a>
+                        <code>java.util.List</code> of all token <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getParentId--">parent ID</a>
                         from the current one to the root. List can be empty if current token has no parent ID.
                     </p>
                     <p>
@@ -1094,7 +1094,7 @@ intents:
                 <td><code>value</code></td>
                 <td>
                     <p>
-                        Token <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getValue--">value</a>
+                        Token <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getValue--">value</a>
                         as a <code>java.lang.String</code> object.
                     </p>
                     <p>
@@ -1107,7 +1107,7 @@ intents:
                 <td><code>~propName</code></td>
                 <td>
                     <p>
-                        Token <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getMetadata--">metadata</a>
+                        Token <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getMetadata--">metadata</a>
                         property for given <code>propName</code>.
                     </p>
                     <p>
@@ -1120,7 +1120,7 @@ intents:
                 <td><code>~propName[key]</code></td>
                 <td>
                     <p>
-                        Token <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getMetadata--">metadata</a>
+                        Token <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getMetadata--">metadata</a>
                         property for given <code>propName</code>
                         of type <code>java.util.List</code> or <code>java.util.Map</code>.
                         Returns indexed or keyed value. Note that <code>key</code> should be integer
@@ -1567,13 +1567,13 @@ intents:
         </p>
         <ul>
             <li>
-                Model provides its custom parsers via <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getParsers--">getParsers()</a> method.
+                Model provides its custom parsers via <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getParsers--">getParsers()</a> method.
             </li>
             <li>
                 Custom parser is defined by the following classes:
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCCustomElement.html">NCCustomElement</a>,
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCCustomParser.html">NCCustomParser</a> and
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCCustomWord.html">NCCustomWord</a>.
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCCustomElement.html">NCCustomElement</a>,
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCCustomParser.html">NCCustomParser</a> and
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCCustomWord.html">NCCustomWord</a>.
             </li>
         </ul>
     </section>
@@ -1592,20 +1592,20 @@ intents:
             documentation that you are encouraged to read through as well:
         </p>
         <ul>
-            <li>Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html">NCModelView</a></li>
-            <li>Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a></li>
-            <li>Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCContext.html">NCContext</a></li>
-            <li>Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCRequest.html">NCRequest</a></li>
-            <li>Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html">NCToken</a></li>
-            <li>Class <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCResult.html">NCResult</a></li>
+            <li>Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html">NCModelView</a></li>
+            <li>Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a></li>
+            <li>Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCContext.html">NCContext</a></li>
+            <li>Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCRequest.html">NCRequest</a></li>
+            <li>Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a></li>
+            <li>Class <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCResult.html">NCResult</a></li>
         </ul>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html">NCModelView</a></span>
+        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html">NCModelView</a></span>
         <p>
             This interface provides read-only view on data model. Model view defines a declarative, or configurable, part of the model.
             All properties in this interface can be defined or overridden in JSON/YAML external
-            presentation when used with <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> adapter.
+            presentation when used with <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> adapter.
         </p>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a></span>
+        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a></span>
         <p>
             This interface defines a context of a particular intent match. It can be passed into the callback of the matched intent
             and provides the following:
@@ -1613,10 +1613,10 @@ intents:
         <ul>
             <li>ID of the matched intent.</li>
             <li>Specific parsing variant that was matched against this intent.</li>
-            <li>Access to the original query context (<a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCContext.html">NCContext</a>).</li>
+            <li>Access to the original query context (<a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCContext.html">NCContext</a>).</li>
             <li>Various access APIs for intent tokens.</li>
         </ul>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCContext.html">NCContext</a></span>
+        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCContext.html">NCContext</a></span>
         <p>
             This interface provides all available data about the parsed user input and all its
             supplemental information. It's accessible from <code>NCIntentMatch</code> interface and
@@ -1627,33 +1627,33 @@ intents:
                 Server request ID. Server request is defined as a processing of one user input sentence.
             </li>
             <li>
-                Reference to <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCConversation.html">NCConversation</a>
+                Reference to <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCConversation.html">NCConversation</a>
                 for controlling STM of conversation manager and dialog flow.
             </li>
             <li>
-                Reference to <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html">NCModelView</a>
+                Reference to <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html">NCModelView</a>
                 instance that the intent callback method belongs to giving access to entire static model configuration.
             </li>
             <li>
-                Reference to <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCRequest.html">NCRequest</a> that
+                Reference to <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCRequest.html">NCRequest</a> that
                 provides detailed information about the user input.
             </li>
             <li>
                 List of parsing variants provided
-                by <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCContext.html#getVariants--">getVariants()</a>
+                by <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCContext.html#getVariants--">getVariants()</a>
                 method. When the user sentence gets parsed into individual tokens (i.e. detected model elements) there is generally
                 more than one way to do it. This ambiguity is perfectly fine because only the data model has all the
                 necessary information to select one parsing variant that fits that model the best. Without the data model
                 there isn't enough context to determine which variant is the best fitting.
-                Method <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCContext.html#getVariants--">getVariants()</a>
+                Method <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCContext.html#getVariants--">getVariants()</a>
                 returns list of all parsing variants for a given user input.
             </li>
         </ul>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCRequest.html">NCRequest</a></span>
+        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCRequest.html">NCRequest</a></span>
         <p>
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCSentence.html">NCRequest</a> interface
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCSentence.html">NCRequest</a> interface
             is one of the several important entities in Data Model API that you as a model developer will be working with. You
-            should review its <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCRequest.html">Javadoc</a> but
+            should review its <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCRequest.html">Javadoc</a> but
             here is an outline of the information it provides:
         </p>
         <ul>
@@ -1667,20 +1667,20 @@ intents:
                 Original request text, timestamp of its receipt, and server request ID.
             </li>
         </ul>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html">NCToken</a></span>
+        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a></span>
         <p>
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html">NCToken</a> object is another
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a> object is another
             key abstraction in Data Model API. A token is a detected model element and is a part of a fully parsed user input.
             Sequence of tokens represents parsed user input. A single token corresponds to a one or more words, sequential
             or not, in the user sentence.
         </p>
         <p>
             Most of the token's information is stored in map-based metadata accessible via
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#getMetadata--">getMetadata()</a> method.
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#getMetadata--">getMetadata()</a> method.
             Depending on the token ID each token will have different set of <a href="#meta">metadata properties</a>. Some common NLP properties
             are always present for tokens of all types.
         </p>
-        <span class="section-sub-title">Class <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCResult.html">NCResult</a></span>
+        <span class="section-sub-title">Class <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCResult.html">NCResult</a></span>
         <p>
             This class defines data model result returned from model's intent callbacks. Result consists of the
             text body and the type. The type is similar in notion to MIME types. Intent callbacks must use this class
@@ -1698,7 +1698,7 @@ intents:
         <p>
             Built-in tokens have to be explicitly enabled on both the REST server and in the model. See
             <code>nlpcraft.server.tokenProviders</code> configuration property and
-            <a target="javadoc" href="apis/latest/org/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView#getEnabledBuiltInTokens()</a>
+            <a target="javadoc" href="apis/latest/org/apache/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView#getEnabledBuiltInTokens()</a>
             method for more details. By default, only NLPCraft tokens are enabled (token ID
             starting with <code>nlpcraft</code>).
         </p>
@@ -2075,7 +2075,7 @@ intents:
                     <td>
                         Whether this token represents an English word. Note that this only checks that token's text
                         consists of characters of English alphabet, i.e. the text doesn't have to be necessary a
-                        known valid English word. See <a href="/apis/latest/org/nlpcraft/model/NCModelView.html#isNonEnglishAllowed--" target="javadoc">NCModelView.isNonEnglishAllowed()</a> method
+                        known valid English word. See <a href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isNonEnglishAllowed--" target="javadoc">NCModelView.isNonEnglishAllowed()</a> method
                         for corresponding model configuration.
                     </td>
                 </tr>
@@ -2125,7 +2125,7 @@ intents:
                     <td><code>java.lang.Boolean</code></td>
                     <td>
                         Whether or not this token is a swear word. NLPCraft has built-in list of common English swear words.
-                        See <a href="/apis/latest/org/nlpcraft/model/NCModelView.html#isSwearWordsAllowed--" target="javadoc">NCModelView.isSwearWordsAllowed()</a> for corresponding model configuration
+                        See <a href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isSwearWordsAllowed--" target="javadoc">NCModelView.isSwearWordsAllowed()</a> for corresponding model configuration
                     </td>
                 </tr>
                 <tr>
diff --git a/docs/docs.html b/docs/docs.html
index 2c6d437..b7cf36d 100644
--- a/docs/docs.html
+++ b/docs/docs.html
@@ -57,7 +57,7 @@ id: overview
         <span class="section-sub-title">Data Model</span>
         <p>
             NLPCraft employs model-as-a-code approach where entire data model is an implementation of
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a> Java interface that
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> Java interface that
             can be developed using any JVM programming language like Java, Scala, Kotlin or Groovy.
             Data model implementation defines how to interpret user input, and how to query or control a particular
             data source. Model-as-a-code natively supports any software lifecycle tools and frameworks in Java eco-system.
diff --git a/docs/download.html b/docs/download.html
index 60905a0..8423ea5 100644
--- a/docs/download.html
+++ b/docs/download.html
@@ -85,7 +85,7 @@ layout: interior
                 <div class="tab-pane fade show active" id="nav-maven" role="tabpanel">
                     <pre class="brush: xml">
                     &lt;dependency&gt;
-                        &lt;groupId&gt;org.nlpcraft&lt;/groupId&gt;
+                        &lt;groupId&gt;org.apache.nlpcraft&lt;/groupId&gt;
                         &lt;artifactId&gt;nlpcraft&lt;/artifactId&gt;
                         &lt;version&gt;{{site.latest_version}}&lt;/version&gt;
                     &lt;/dependency&gt;
@@ -93,19 +93,19 @@ layout: interior
                 </div>
                 <div class="tab-pane fade" id="nav-grape" role="tabpanel">
                     <pre class="brush: java">
-                    @Grab ('org.nlpcraft:nlpcraft:{{site.latest_version}}')
+                    @Grab ('org.apache.nlpcraft:nlpcraft:{{site.latest_version}}')
                     </pre>
                 </div>
                 <div class="tab-pane fade" id="nav-gradle" role="tabpanel">
                     <pre class="brush: java">
                     dependencies {
-                        runtime group: 'org.nlpcraft', name: 'nlpcraft', version: '{{site.latest_version}}'
+                        runtime group: 'org.apache.nlpcraft', name: 'nlpcraft', version: '{{site.latest_version}}'
                     }
                     </pre>
                 </div>
                 <div class="tab-pane fade" id="nav-sbt" role="tabpanel">
                     <pre class="brush: scala">
-                    libraryDependencies += "org.nlpcraft" % "nlpcraft" % "{{site.latest_version}}"
+                    libraryDependencies += "org.apache.nlpcraft" % "nlpcraft" % "{{site.latest_version}}"
                     </pre>
                 </div>
             </div>
@@ -159,7 +159,7 @@ layout: interior
                 {% for rel in site.data.releases %}
                 <tr>
                     <td>
-                        <i class="fa fa-fw fa-download"></i> <a href="{{rel.zip_url}}">nlpcraft-{{rel.version}}.zip</a>
+                        <i class="fa fa-fw fa-download"></i> <a href="{{rel.zip_url}}">{{rel.zip_name}}</a>
                         {% unless rel.backward_compatible %}<i class="fas fa-fw fa-bomb"></i>{% endunless %}
                     </td>
                     <td>{{rel.version}}</td>
@@ -293,7 +293,7 @@ layout: interior
                 <div class="tab-pane fade show active" id="nav-java-client-maven" role="tabpanel">
                     <pre class="brush: xml">
                     &lt;dependency&gt;
-                        &lt;groupId&gt;org.nlpcraft&lt;/groupId&gt;
+                        &lt;groupId&gt;org.apache.nlpcraft&lt;/groupId&gt;
                         &lt;artifactId&gt;nlpcraft-java-client&lt;/artifactId&gt;
                         &lt;version&gt;{{site.java_client_latest_version}}&lt;/version&gt;
                     &lt;/dependency&gt;
@@ -301,19 +301,19 @@ layout: interior
                 </div>
                 <div class="tab-pane fade" id="nav-java-client-grape" role="tabpanel">
                     <pre class="brush: java">
-                    @Grab ('org.nlpcraft:nlpcraft-java-client:{{site.java_client_latest_version}}')
+                    @Grab ('org.apache.nlpcraft:nlpcraft-java-client:{{site.java_client_latest_version}}')
                     </pre>
                 </div>
                 <div class="tab-pane fade" id="nav-java-client-gradle" role="tabpanel">
                     <pre class="brush: java">
                     dependencies {
-                        runtime group: 'org.nlpcraft', name: 'nlpcraft-java-client', version: '{{site.java_client_latest_version}}'
+                        runtime group: 'org.apache.nlpcraft', name: 'nlpcraft-java-client', version: '{{site.java_client_latest_version}}'
                     }
                     </pre>
                 </div>
                 <div class="tab-pane fade" id="nav-java-client-sbt" role="tabpanel">
                     <pre class="brush: scala">
-                    libraryDependencies += "org.nlpcraft" % "nlpcraft-java-client" % "{{site.java_client_latest_version}}"
+                    libraryDependencies += "org.apache.nlpcraft" % "nlpcraft-java-client" % "{{site.java_client_latest_version}}"
                     </pre>
                 </div>
             </div>
diff --git a/docs/examples/alarm_clock.html b/docs/examples/alarm_clock.html
index 9a87fbf..8736a88 100644
--- a/docs/examples/alarm_clock.html
+++ b/docs/examples/alarm_clock.html
@@ -32,7 +32,7 @@ id: alarm_clock
         </p>
         <p>
             Complexity: <span class="complexity-one-star"><i class="fas fa-star"></i><i class="far fa-star"></i><i class="far fa-star"></i></span><br/>
-            Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/alarm">GitHub</a>
+            Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/alarm">GitHub</a>
         </p>
     </section>
     <section id="new_project">
@@ -81,7 +81,7 @@ id: alarm_clock
         <pre class="brush: xml, highlight: [3, 4, 5]">
             &lt;dependencies&gt;
                 &lt;dependency&gt;
-                    &lt;groupId&gt;org.nlpcraft&lt;/groupId&gt;
+                    &lt;groupId&gt;org.apache.nlpcraft&lt;/groupId&gt;
                     &lt;artifactId&gt;nlpcraft&lt;/artifactId&gt;
                     &lt;version&gt;{{site.latest_version}}&lt;/version&gt;
                 &lt;/dependency&gt;
@@ -164,7 +164,7 @@ id: alarm_clock
             Let's create new Java class in <code>AlarmModel.java</code> with the following code:
         </p>
         <pre class="brush: java, highlight: [9, 18, 21, 22, 23, 24, 68, 81]">
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.model.*;
 
 import java.time.*;
 import java.time.format.DateTimeFormatter;
@@ -181,7 +181,7 @@ public class AlarmModel extends NCModelFileAdapter {
 
     public AlarmModel() {
         // Loading the model from the file in the classpath.
-        super("org/nlpcraft/examples/alarm/alarm_model.json");
+        super("org/apache/nlpcraft/examples/alarm/alarm_model.json");
     }
 
     @NCIntentRef("alarm")
@@ -284,7 +284,7 @@ public class AlarmModel extends NCModelFileAdapter {
         </p>
         <ul>
             <li>
-                <b>Main class:</b> <code>org.nlpcraft.NCStart</code>
+                <b>Main class:</b> <code>org.apache.nlpcraft.NCStart</code>
             </li>
             <li>
                 <b>VM arguments:</b> <code>-Dconfig.override_with_env_vars=true</code>
@@ -316,7 +316,7 @@ public class AlarmModel extends NCModelFileAdapter {
         </p>
         <ul>
             <li>
-                <b>Main class:</b> <code>org.nlpcraft.NCStart</code>
+                <b>Main class:</b> <code>org.apache.nlpcraft.NCStart</code>
             </li>
             <li>
                 <b>Program arguments: </b> <code>-server</code>
@@ -335,7 +335,7 @@ public class AlarmModel extends NCModelFileAdapter {
     <section>
         <span class="section-sub-title">Testing</span>
         <p>
-            NLPCraft comes with easy to use <a target="javadoc" href="/apis/latest/org/nlpcraft/model/test/package-summary.html">test framework</a> for
+            NLPCraft comes with easy to use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/test/package-summary.html">test framework</a> for
             data models that can be used with
             any unit testing framework like JUnit or ScalaTest. It is essentially a simplified
             version of Java REST client that is custom designed for data model testing.
@@ -353,8 +353,8 @@ public class AlarmModel extends NCModelFileAdapter {
         </p>
         <pre class="brush: java, highlight: [16, 26, 27, 28]">
 import org.junit.jupiter.api.*;
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.model.tools.test.*;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.model.tools.test.*;
 
 import java.io.IOException;
 
@@ -417,7 +417,7 @@ class AlarmTest {
         <li>
             <img alt=github" class="quick-link-img mr-2" src="/images/github_logo.png"><a
             target="github"
-            href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples">Examples</a>
+            href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples">Examples</a>
         </li>
         <li>
             <i class="fab fa-java mr-2"></i><a target="_" href="/apis/latest/index.html">Javadoc</a>
diff --git a/docs/examples/light_switch.html b/docs/examples/light_switch.html
index bb30888..cc05349 100644
--- a/docs/examples/light_switch.html
+++ b/docs/examples/light_switch.html
@@ -32,7 +32,7 @@ id: light_switch
         </p>
         <p>
             Complexity: <span class="complexity-one-star"><i class="fas fa-star"></i><i class="far fa-star"></i><i class="far fa-star"></i></span><br/>
-            Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/lightswitch">GitHub</a>
+            Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/lightswitch">GitHub</a>
         </p>
     </section>
     <section id="new_project">
@@ -81,7 +81,7 @@ id: light_switch
         <pre class="brush: xml, highlight: [3, 4, 5]">
             &lt;dependencies&gt;
                 &lt;dependency&gt;
-                    &lt;groupId&gt;org.nlpcraft&lt;/groupId&gt;
+                    &lt;groupId&gt;org.apache.nlpcraft&lt;/groupId&gt;
                     &lt;artifactId&gt;nlpcraft&lt;/artifactId&gt;
                     &lt;version&gt;{{site.latest_version}}&lt;/version&gt;
                 &lt;/dependency&gt;
@@ -182,10 +182,10 @@ intents:
             Let's create new Scala class in <code>LightSwitchModel.scala</code> with the following code:
         </p>
         <pre class="brush: java, highlight: [4, 5, 6, 7, 8, 20]">
-import org.nlpcraft.model._
-import org.nlpcraft.model.NCIntentTerm
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.NCIntentTerm
 
-class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightswitch/lightswitch_model.yaml") {
+class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/lightswitch/lightswitch_model.yaml") {
     @NCIntentRef("ls")
     def onMatch(
         @NCIntentTerm("act") actTok: NCToken,
@@ -238,7 +238,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightsw
         </p>
         <ul>
             <li>
-                <b>Main class:</b> <code>org.nlpcraft.NCStart</code>
+                <b>Main class:</b> <code>org.apache.nlpcraft.NCStart</code>
             </li>
             <li>
                 <b>VM arguments:</b> <code>-Dconfig.override_with_env_vars=true</code>
@@ -270,7 +270,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightsw
         </p>
         <ul>
             <li>
-                <b>Main class:</b> <code>org.nlpcraft.NCStart</code>
+                <b>Main class:</b> <code>org.apache.nlpcraft.NCStart</code>
             </li>
             <li>
                 <b>Program arguments: </b> <code>-server</code>
@@ -289,7 +289,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightsw
     <section>
         <span class="section-sub-title">Testing</span>
         <p>
-            NLPCraft comes with easy to use <a target="javadoc" href="/apis/latest/org/nlpcraft/model/test/package-summary.html">test framework</a> for
+            NLPCraft comes with easy to use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/test/package-summary.html">test framework</a> for
             data models that can be used with
             any unit testing framework like JUnit or ScalaTest. It is essentially a simplified
             version of Java REST client that is custom designed for data model testing.
@@ -315,8 +315,8 @@ class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightsw
         </p>
         <pre class="brush: java, highlight: [15, 24]">
 import org.junit.jupiter.api.*;
-import org.nlpcraft.common.*;
-import org.nlpcraft.model.tools.test.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.model.tools.test.*;
 import java.io.*;
 
 import static org.junit.jupiter.api.Assertions.*;
@@ -386,7 +386,7 @@ class LightSwitchTest {
         <li>
             <img alt=github" class="quick-link-img mr-2" src="/images/github_logo.png"><a
             target="github"
-            href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples">Examples</a>
+            href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples">Examples</a>
         </li>
         <li>
             <i class="fab fa-java mr-2"></i><a target="_" href="/apis/latest/index.html">Javadoc</a>
diff --git a/docs/examples/weather_bot.html b/docs/examples/weather_bot.html
index 2aedeac..4dfdc25 100644
--- a/docs/examples/weather_bot.html
+++ b/docs/examples/weather_bot.html
@@ -32,7 +32,7 @@ id: weather_bot
         </p>
         <p>
             Complexity: <span class="complexity-two-star"><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="far fa-star"></i></span><br/>
-            Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/weather">GitHub</a>
+            Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/weather">GitHub</a>
         </p>
     </section>
 </div>
@@ -44,7 +44,7 @@ id: weather_bot
         <li>
             <img alt=github" class="quick-link-img mr-2" src="/images/github_logo.png"><a
             target="github"
-            href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples">Examples</a>
+            href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples">Examples</a>
         </li>
         <li>
             <i class="fab fa-java mr-2"></i><a target="_" href="/apis/latest/index.html">Javadoc</a>
diff --git a/docs/first-example.html b/docs/first-example.html
index 59f214c..954854b 100644
--- a/docs/first-example.html
+++ b/docs/first-example.html
@@ -73,7 +73,7 @@ id: first_example
         <pre class="brush: xml, highlight: [3, 4, 5]">
             &lt;dependencies&gt;
                 &lt;dependency&gt;
-                    &lt;groupId&gt;org.nlpcraft&lt;/groupId&gt;
+                    &lt;groupId&gt;org.apache.nlpcraft&lt;/groupId&gt;
                     &lt;artifactId&gt;nlpcraft&lt;/artifactId&gt;
                     &lt;version&gt;{{site.latest_version}}&lt;/version&gt;
                 &lt;/dependency&gt;
@@ -105,9 +105,9 @@ id: first_example
             or <code>"Could you please switch off all the lights?"</code>
         </p>
         <p>
-            In NLPCraft a data model is simply an implementation of <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a>
+            In NLPCraft a data model is simply an implementation of <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a>
             interface. You can move most of the model configuration out to an external JSON or YAML file and use
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> to
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> to
             load this external configuration when creating a new model. Note that this is a canonical pattern to build
             models in NLPCraft and it allows you cleanly separate the logic of the model from its declarative configuration.
         </p>
@@ -172,10 +172,10 @@ id: first_example
         <pre class="brush: java, highlight: [7,9,10]">
 package examples;
 
-import org.nlpcraft.model._
-import org.nlpcraft.model.NCIntentTerm
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.NCIntentTerm
 
-class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightswitch/lightswitch_model.yaml") {
+class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/lightswitch/lightswitch_model.yaml") {
     @NCIntent("intent=ls conv=false term(act)={groups @@ 'act'} term(loc)={id == 'ls:loc'}*")
     def onMatch(
         @NCIntentTerm("act") actTok: NCToken,
@@ -200,19 +200,19 @@ class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightsw
         </p>
         <ul>
             <li>
-                On line 6 we use <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a>
+                On line 6 we use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a>
                 adapter and load model static configuration from <code>lightswitch_model.yml</code> file.
             </li>
             <li>
                 Our data model uses intent-based matching of the user input. Intent is a template and a callback for when
                 a template is matched.
                 Lines 7, 9 and 10 show the usage of
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/inteint/NCIntent.html">@NCIntent</a> and
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/inteint/NCIntent.html">@NCIntentTerm</a>
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/inteint/NCIntent.html">@NCIntent</a> and
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/inteint/NCIntent.html">@NCIntentTerm</a>
                 annotations that are used to connect the matching logic with a callback method.
             </li>
             <li>
-                The intent defined through <a target="javadoc" href="/apis/latest/org/nlpcraft/model/inteint/NCIntent.html">@NCIntent</a> annotation matches
+                The intent defined through <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/inteint/NCIntent.html">@NCIntent</a> annotation matches
                 two parts: first should be any token belonging to <code>act</code> group (i.e. "on" or "off" action),
                 and the second should be a zero or more tokens with ID equal to <code>ls:loc</code> (i.e. optional list of locations).
             </li>
@@ -234,13 +234,13 @@ class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightsw
         </p>
         <ul>
             <li>
-                <b>Main class:</b> <code>org.nlpcraft.NCStart</code>
+                <b>Main class:</b> <code>org.apache.nlpcraft.NCStart</code>
             </li>
             <li>
                 <b>VM arguments:</b> <code>-Dconfig.override_with_env_vars=true</code>
             </li>
             <li>
-                <b>Environment variable:</b> <code>CONFIG_FORCE_nlpcraft_probe_models.0=org.nlpcraft.examples.lightswitch.LightSwitchModel</code>
+                <b>Environment variable:</b> <code>CONFIG_FORCE_nlpcraft_probe_models.0=org.apache.nlpcraft.examples.lightswitch.LightSwitchModel</code>
             </li>
             <li>
                 <b>Program arguments: </b> <code>-probe</code>
@@ -266,7 +266,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightsw
         </p>
         <ul>
             <li>
-                <b>Main class:</b> <code>org.nlpcraft.NCStart</code>
+                <b>Main class:</b> <code>org.apache.nlpcraft.NCStart</code>
             </li>
             <li>
                 <b>Program arguments: </b> <code>-server</code>
@@ -286,7 +286,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightsw
     <section>
         <span class="section-sub-title">Testing</span>
         <p>
-            NLPCraft comes with easy to use <a target="javadoc" href="/apis/latest/org/nlpcraft/model/test/package-summary.html">test framework</a> for data models that can be used with
+            NLPCraft comes with easy to use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/test/package-summary.html">test framework</a> for data models that can be used with
             any unit testing framework like JUnit or ScalaTest. It is essentially a simplified
             version of Java REST client that is custom designed for data model testing.
         </p>
@@ -314,8 +314,8 @@ class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightsw
 package examples;
 
 import org.junit.jupiter.api.*;
-import org.nlpcraft.common.*;
-import org.nlpcraft.model.tools.test.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.model.tools.test.*;
 import java.io.*;
 
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/docs/getting-started.html b/docs/getting-started.html
index 1dab06f..d9083c7 100644
--- a/docs/getting-started.html
+++ b/docs/getting-started.html
@@ -26,7 +26,7 @@ id: getting_started
         <span class="section-title">Getting Started</span>
         <p>
             In this section we'll take a quick 10 minutes look at running and
-            testing <a href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples" target="github">examples</a>
+            testing <a href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples" target="github">examples</a>
             shipped with NLPCraft along with
             running the main components of NLPCraft - data probe and REST server. We assume the following:
         </p>
@@ -122,12 +122,12 @@ id: getting_started
                 | Down-Link       | localhost:8202                                     |
                 | Up-Link         | localhost:8201                                     |
                 +-----------------+----------------------------------------------------+
-                | Model providers | org.nlpcraft.examples.alarm.AlarmModel             |
-                |                 | org.nlpcraft.examples.echo.EchoModel               |
-                |                 | org.nlpcraft.examples.helloworld.HelloWorldModel   |
-                |                 | org.nlpcraft.examples.time.TimeModel               |
-                |                 | org.nlpcraft.examples.weather.WeatherModel         |
-                |                 | org.nlpcraft.examples.lightswitch.LightSwitchModel |
+                | Model providers | org.apache.nlpcraft.examples.alarm.AlarmModel             |
+                |                 | org.apache.nlpcraft.examples.echo.EchoModel               |
+                |                 | org.apache.nlpcraft.examples.helloworld.HelloWorldModel   |
+                |                 | org.apache.nlpcraft.examples.time.TimeModel               |
+                |                 | org.apache.nlpcraft.examples.weather.WeatherModel         |
+                |                 | org.apache.nlpcraft.examples.lightswitch.LightSwitchModel |
                 +-----------------+----------------------------------------------------+
                 | JARs Folder     |                                                    |
                 +----------------------------------------------------------------------+
@@ -167,7 +167,7 @@ id: getting_started
     <section id="querying">
         <span class="section-title">Weather Forecast</span>
         <p>
-            We'll be testing <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/weather">Weather Example</a>
+            We'll be testing <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/weather">Weather Example</a>
             to ask questions about weather forecast using REST APIs. This example returns a comprehensive JSON weather
             data for variety of different inquiries about the past, present or future weather conditions.
         </p>
diff --git a/docs/index.html b/docs/index.html
index 0f06bc3..5b34fbb 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -85,7 +85,7 @@ layout: default
                         <div class="gh-btn">
                             <a
                                 class="github-button"
-                                href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples"
+                                href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples"
                                 aria-label="NLPCraft examples on GitHub">Examples</a>
                         </div>
                         <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a>
@@ -94,7 +94,7 @@ layout: default
                         <a href="/apis/latest/index.html" target="_">
                             <img alt="" class="quick-link-img" src="{{ 'images/java.png' | relative_url }}">
                             <span>Latest&nbsp;</span>
-                            <a target="_" href="https://javadoc.io/doc/org.nlpcraft/nlpcraft"><img src="https://javadoc.io/badge/org.nlpcraft/nlpcraft.svg" alt="Javadocs"></a>
+                            <a target="_" href="https://javadoc.io/doc/org.apache.nlpcraft/nlpcraft"><img src="https://javadoc.io/badge/org.apache.nlpcraft/nlpcraft.svg" alt="Javadocs"></a>
                         </a>
                     </div>
                     <div class="quick-link">
diff --git a/docs/integrations.html b/docs/integrations.html
index 72245a0..e54189d 100644
--- a/docs/integrations.html
+++ b/docs/integrations.html
@@ -104,7 +104,7 @@ id: integrations
             <p>
                 REST server configuration property <code>tokenProvides</code> provides the list of enabled token providers. See its
                 <a href="/server-and-probe.html">documentation</a> for more details. Data model provides its required tokens via
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
             </p>
         </div>
     </section>
@@ -332,7 +332,7 @@ id: integrations
             </li>
             <li>
                 Make sure to also properly configure required tokens in you model configuration via
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
             </li>
         </ul>
     </section>
@@ -411,7 +411,7 @@ id: integrations
                 </table>
             </li>
             <li>
-                See <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#opennlp">NCToken</a>
+                See <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#opennlp">NCToken</a>
                 documentation for token properties.
             </li>
             <li>
@@ -420,7 +420,7 @@ id: integrations
             </li>
             <li>
                 Make sure to properly configure required tokens in you model configuration via
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
             </li>
         </ul>
     </section>
@@ -452,7 +452,7 @@ id: integrations
                 for more details on supported tokens.
             </li>
             <li>
-                See <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#google">NCToken</a> documentation for token properties.
+                See <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#google">NCToken</a> documentation for token properties.
             </li>
             <li>
                 Make sure to enable this token provider <code>google</code> in REST server configuration
@@ -460,7 +460,7 @@ id: integrations
             </li>
             <li>
                 Make sure to also properly configure required tokens in you model configuration via
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
             </li>
         </ul>
     </section>
@@ -610,7 +610,7 @@ id: integrations
                 for more details on supported token types.
             </li>
             <li>
-                See <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#stanford">NCToken</a>
+                See <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#stanford">NCToken</a>
                 documentation for token properties.
             </li>
             <li>
@@ -619,7 +619,7 @@ id: integrations
             </li>
             <li>
                 Make sure to also properly configure required tokens in you model configuration via
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
             </li>
         </ul>
     </section>
@@ -738,7 +738,7 @@ if __name__ == '__main__':
                 for more details on supported token types.
             </li>
             <li>
-                See <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCToken.html#stanford">NCToken</a>
+                See <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html#stanford">NCToken</a>
                 documentation for token properties.
             </li>
             <li>
@@ -747,7 +747,7 @@ if __name__ == '__main__':
             </li>
             <li>
                 Make sure to also properly configure required tokens in you model configuration via
-                <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
+                <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getEnabledBuiltInTokens--">NCModelView.getEnabledBuiltInTokens()</a> method.
             </li>
         </ul>
     </section>
diff --git a/docs/intent-matching.html b/docs/intent-matching.html
index bbdb4ed..048bf7c 100644
--- a/docs/intent-matching.html
+++ b/docs/intent-matching.html
@@ -52,22 +52,22 @@ id: intent_matching
             </thead>
             <tbody>
                 <tr>
-                    <td><a target="javadoc" href="/apis/latest/org/nlpcraft/model/intent/NCIntent.html">@NCIntent</a></td>
+                    <td><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/intent/NCIntent.html">@NCIntent</a></td>
                     <td>
                         This annotation defines an intent in-place on the method serving as its callback. It takes a string value
                         that specifies an intent using intent <a href="#syntax">DSL syntax</a>.
                     </td>
                 </tr>
                 <tr>
-                    <td><a target="javadoc" href="/apis/latest/org/nlpcraft/model/intent/NCIntentRed.html">@NCIntentRef</a></td>
+                    <td><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/intent/NCIntentRed.html">@NCIntentRef</a></td>
                     <td>
                         This annotation allows to reference an intent defined in external JSON or YAML model definition.
-                        Similarly to <a target="javadoc" href="/apis/latest/org/nlpcraft/model/intent/NCIntent.html">@NCIntent</a>
+                        Similarly to <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/intent/NCIntent.html">@NCIntent</a>
                         annotation the intent should be defined using <a href="#syntax">DSL syntax</a>.
                     </td>
                 </tr>
                 <tr>
-                    <td><a target="javadoc" href="/apis/latest/org/nlpcraft/model/intent/NCIntentTerm.html">@NCIntentTerm</a></td>
+                    <td><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/intent/NCIntentTerm.html">@NCIntentTerm</a></td>
                     <td>
                         This annotation annotation marks a formal callback method parameter to receive term's tokens.
                     </td>
@@ -79,7 +79,7 @@ id: intent_matching
         </p>
         <p>
              An intent from
-            <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/lightswitch">Light Switch</a> Scala example:
+            <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/lightswitch">Light Switch</a> Scala example:
         </p>
         <pre class="brush: java">
             &#64;NCIntent("intent=act conv=false term(act)={groups @@ 'act'} term(loc)={trim(id) == 'ls:loc'}*")
@@ -124,8 +124,8 @@ id: intent_matching
                 annotations.
             </li>
             <li>
-                Given the <a target="github" href="https://github.com/apache/incubator-nlpcraft/blob/master/src/main/scala/org/nlpcraft/examples/lightswitch/lightswitch_model.yaml">data model</a>
-                from this <a target="github" href="https://github.com/apache/incubator-nlpcraft/blob/master/src/main/scala/org/nlpcraft/examples/lightswitch/lightswitch_model.yaml">example</a> the following sentences will be matched by this intent:
+                Given the <a target="github" href="https://github.com/apache/incubator-nlpcraft/blob/master/src/main/scala/org/apache/nlpcraft/examples/lightswitch/lightswitch_model.yaml">data model</a>
+                from this <a target="github" href="https://github.com/apache/incubator-nlpcraft/blob/master/src/main/scala/org/apache/nlpcraft/examples/lightswitch/lightswitch_model.yaml">example</a> the following sentences will be matched by this intent:
                 <ul>
                     <li><code>Turn the lights off in the entire house.</code></li>
                     <li><code>Switch on the illumination in the master bedroom closet.</code></li>
@@ -143,7 +143,7 @@ id: intent_matching
         </ul>
         <br/>
         <p>
-            In the following <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/alarm">Alarm Clock</a> Java example
+            In the following <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/alarm">Alarm Clock</a> Java example
             the intent is defined in JSON model definition and referenced in Java code using <code>@NCIntentTerm</code>
             annotation:
         </p>
@@ -206,7 +206,7 @@ id: intent_matching
             </li>
             <li>
                 Second term is defined as a zero or up to seven numeric built-in <code>nlpcraft:num</code> tokens that
-                have unit type of <code>datetime</code> and are single numbers. Note that <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/alarm">Alarm Clock</a>
+                have unit type of <code>datetime</code> and are single numbers. Note that <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/alarm">Alarm Clock</a>
                 model allows zero tokens in this term which would mean the current time.
             </li>
             <li>
@@ -223,7 +223,7 @@ id: intent_matching
         <span class="section-title">Intent DSL</span>
         <p>
             Regardless of how intent is defined - directly in <code>@NCIntent</code> annotation or in external model
-            declaration - it follow the exactly the same syntax (here's a full <a target=github href="https://github.com/apache/incubator-nlpcraft/blob/master/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4">ANTRL4 grammar</a>).
+            declaration - it follow the exactly the same syntax (here's a full <a target=github href="https://github.com/apache/incubator-nlpcraft/blob/master/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4">ANTRL4 grammar</a>).
         </p>
         <p>
             Intent DSL grammar can be informally described using the following example (order of individual declarations is important):
@@ -337,22 +337,22 @@ id: intent_matching
         </p>
         <ul>
             <li>
-                Callback can only be an instance method on the class implementing <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html">NCModel</a>
+                Callback can only be an instance method on the class implementing <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a>
                 interface.
             </li>
             <li>
-                Method must have return type of <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCResult.html">NCResult</a>.
+                Method must have return type of <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCResult.html">NCResult</a>.
             </li>
             <li>
                 Method can have zero or more parameters:
                 <ul>
                     <li>
-                        Parameter of type <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a>,
+                        Parameter of type <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a>,
                         if present, must be first.
                     </li>
                     <li>
                         Any other parameters (other than the first optional
-                        <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a>) must
+                        <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a>) must
                         have <code>@NCIntentTerm</code> annotation.
                     </li>
                 </ul>
@@ -418,7 +418,7 @@ id: intent_matching
                 term's quantifier is <code>[0,1]</code>.
             </li>
             <li>
-                Note that callback doesn't have an optional <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a>
+                Note that callback doesn't have an optional <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a>
                 parameter.
             </li>
         </ul>
@@ -427,14 +427,14 @@ id: intent_matching
             There are two exceptions that can be used by intent callback logic to control intent matching process.
         </p>
         <p>
-            When <a href="/apis/latest/org/nlpcraft/model/NCRejection.html">NCRejection</a> exception is thrown by the callback it indicates that user input cannot
+            When <a href="/apis/latest/org/apache/nlpcraft/model/NCRejection.html">NCRejection</a> exception is thrown by the callback it indicates that user input cannot
             be processed as is.  This exception typically indicates that user has not provided enough information in
             the input string to have it processed automatically. In most cases this means that the user's input is
             either too short or too simple, too long or too complex, missing required context, or is unrelated to the
             requested data model.
         </p>
         <p>
-            <a href="/apis/latest/org/nlpcraft/model/NCIntentSkip.html">NCIntentSkip</a> is a control flow exception to
+            <a href="/apis/latest/org/apache/nlpcraft/model/NCIntentSkip.html">NCIntentSkip</a> is a control flow exception to
             skip current intent. This exception can be thrown by the intent callback to indicate that current intent
             should be skipped (even though it was matched and its callback was called). If there's more than one intent
             matched the next best matching intent will be selected and its callback will be called.
@@ -446,8 +446,8 @@ id: intent_matching
             not match then throwing this exception allows to try next best matching intent, if any.
         </p>
         <p>
-            Note that there's a significant difference between <a href="/apis/latest/org/nlpcraft/model/NCIntentSkip.html">NCIntentSkip</a>
-            exception and model's <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCModel.html#onMatchedIntent-org.nlpcraft.model.NCIntentMatch-">onMatchedIntent(...)</a>
+            Note that there's a significant difference between <a href="/apis/latest/org/apache/nlpcraft/model/NCIntentSkip.html">NCIntentSkip</a>
+            exception and model's <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html#onMatchedIntent-org.apache.nlpcraft.model.NCIntentMatch-">onMatchedIntent(...)</a>
             callback. Unlike this callback, the exception does not force re-matching of all intents, it simply
             picks the next best intent from the list of already matched ones. The model's callback can force
             a full reevaluation of all intents against the user input.
@@ -474,7 +474,7 @@ id: intent_matching
         </div>
         <span class="section-sub-title"><code>NCIntentMatch</code> Interface</span>
         <p>
-            <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a> interface
+            <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a> interface
             can be passed into intent callback as its first parameter. This interface provide runtime information
             about the intent that was matched (i.e. the intent with which this callback was annotated with). Note also that
             intent context can only be the 1st parameter in the callback, and if not declared as such - it won't be passed in.
diff --git a/docs/metrics-and-tracing.html b/docs/metrics-and-tracing.html
index 1c8a03d..4bb904b 100644
--- a/docs/metrics-and-tracing.html
+++ b/docs/metrics-and-tracing.html
@@ -46,9 +46,9 @@ id: metrics
                     </a>
                 </td>
                 <td>
-                    Server: <code>org.nlpcraft.server.lifecycle.opencensus.NCJaegerExporter</code><br>
+                    Server: <code>org.apache.nlpcraft.server.lifecycle.opencensus.NCJaegerExporter</code><br>
                     Probe:
-                    <a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCJaegerExporter.html">org.nlpcraft.model.opencensus.NCJaegerExporter</a>
+                    <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCJaegerExporter.html">org.apache.nlpcraft.model.opencensus.NCJaegerExporter</a>
                 </td>
                 <td><center>Trace</center></td>
             </tr>
@@ -60,8 +60,8 @@ id: metrics
                     </a>
                 </td>
                 <td>
-                    Server: <code>org.nlpcraft.server.lifecycle.opencensus.NCZipkinExporter</code><br>
-                    Probe: <a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCZipkinExporter.html">org.nlpcraft.model.opencensus.NCZipkinExporter</a>
+                    Server: <code>org.apache.nlpcraft.server.lifecycle.opencensus.NCZipkinExporter</code><br>
+                    Probe: <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCZipkinExporter.html">org.apache.nlpcraft.model.opencensus.NCZipkinExporter</a>
                 </td>
                 <td><center>Trace</center></td>
             </tr>
@@ -73,8 +73,8 @@ id: metrics
                     </a>
                 </td>
                 <td>
-                    Server: <code>org.nlpcraft.server.lifecycle.opencensus.NCPrometheusExporter</code><br>
-                    Probe: <a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCPrometheusExporter.html">org.nlpcraft.model.opencensus.NCPrometheusExporter</a>
+                    Server: <code>org.apache.nlpcraft.server.lifecycle.opencensus.NCPrometheusExporter</code><br>
+                    Probe: <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCPrometheusExporter.html">org.apache.nlpcraft.model.opencensus.NCPrometheusExporter</a>
                 </td>
                 <td><center>Stats</center></td>
             </tr>
@@ -86,8 +86,8 @@ id: metrics
                     </a>
                 </td>
                 <td>
-                    Server: <code>org.nlpcraft.server.lifecycle.opencensus.NCPrometheusExporter</code><br>
-                    Probe: <a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCPrometheusExporter.html">org.nlpcraft.model.opencensus.NCPrometheusExporter</a>
+                    Server: <code>org.apache.nlpcraft.server.lifecycle.opencensus.NCPrometheusExporter</code><br>
+                    Probe: <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCPrometheusExporter.html">org.apache.nlpcraft.model.opencensus.NCPrometheusExporter</a>
                 </td>
                 <td><center>Stats</center></td>
             </tr>
@@ -99,8 +99,8 @@ id: metrics
                     </a>
                 </td>
                 <td>
-                    Server: <code>org.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter</code><br>
-                    Probe: <a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCStackdriverStatsExporter.html">org.nlpcraft.model.opencensus.NCStackdriverStatsExporter</a>
+                    Server: <code>org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter</code><br>
+                    Probe: <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCStackdriverStatsExporter.html">org.apache.nlpcraft.model.opencensus.NCStackdriverStatsExporter</a>
                 </td>
                 <td><center>Stats</center></td>
             </tr>
@@ -112,8 +112,8 @@ id: metrics
                     </a>
                 </td>
                 <td>
-                    Server: <code>org.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter</code><br>
-                    Probe: <a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCStackdriverTraceExporter.html">org.nlpcraft.model.opencensus.NCStackdriverTraceExporter</a>
+                    Server: <code>org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter</code><br>
+                    Probe: <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCStackdriverTraceExporter.html">org.apache.nlpcraft.model.opencensus.NCStackdriverTraceExporter</a>
                 </td>
                 <td><center>Trace</center></td>
             </tr>
@@ -145,8 +145,8 @@ nlpcraft {
     server {
         ...
         lifecycle = [
-            "org.nlpcraft.server.lifecycle.opencensus.NCPrometheusExporter",
-            "org.nlpcraft.server.lifecycle.opencensus.NCJaegerExporter"
+            "org.apache.nlpcraft.server.lifecycle.opencensus.NCPrometheusExporter",
+            "org.apache.nlpcraft.server.lifecycle.opencensus.NCJaegerExporter"
         ]
         ...
     }
@@ -165,7 +165,7 @@ nlpcraft {
         <p>
             Just like on the REST server OpenCensus exporters for the data probe are lifecycle components. Probe lifecycle
             components are the implementations
-            of <a target="javadoc" href="/apis/latest/org/nlpcraft/model/NCProbeLifecycle.html">org.nlpcraft.model.NCLifecycle</a>
+            of <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCProbeLifecycle.html">org.apache.nlpcraft.model.NCLifecycle</a>
             interface. Lifecycle components get callbacks for various stages of the data probe
             lifecycle and thus can register and unregister "primordial" components such as OpenCensus exporters. For example, using
             file based configuration:
@@ -175,8 +175,8 @@ nlpcraft {
     probe {
         ...
         lifecycle = [
-            "org.nlpcraft.model.opencensus.NCPrometheusExporter",
-            "org.nlpcraft.model.opencensus.NCJaegerExporter"
+            "org.apache.nlpcraft.model.opencensus.NCPrometheusExporter",
+            "org.apache.nlpcraft.model.opencensus.NCJaegerExporter"
         ]
         ...
     }
@@ -191,11 +191,11 @@ nlpcraft {
             Please consult individual exporter classes:
         </p>
         <ul>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCJaegerExporter.html">NCJaegerExporter</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCZipkinExporter.html">NCZipkinExporter</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCPrometheusExporter.html">NCPrometheusExporter</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCStackdriverStatsExporter.html">NCStackdriverStatsExporter</a></li>
-            <li><a target="javadoc" href="/apis/latest/org/nlpcraft/model/opencensus/NCStackdriverTraceExporter.html">NCStackdriverTraceExporter</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCJaegerExporter.html">NCJaegerExporter</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCZipkinExporter.html">NCZipkinExporter</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCPrometheusExporter.html">NCPrometheusExporter</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCStackdriverStatsExporter.html">NCStackdriverStatsExporter</a></li>
+            <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/opencensus/NCStackdriverTraceExporter.html">NCStackdriverTraceExporter</a></li>
         </ul>
     </section>
     <section id="traces">
diff --git a/docs/release-notes-0.8.2.html b/docs/release-notes-0.8.2.html
index 95188f1..d3ce884 100644
--- a/docs/release-notes-0.8.2.html
+++ b/docs/release-notes-0.8.2.html
@@ -27,7 +27,7 @@ layout: release-notes
             Fixed <a target="github" href="https://github.com/apache/incubator-nlpcraft/issues/185">Issue #185</a>.
             <p>
                 Introduced command line utility to build NLPCraft model stub from any SQL JDBC-based data source.
-                See <a target="javadoc" href="/apis/latest/org/nlpcraft/model/tools/NCSqlModelGenerator.html">NCSqlModelGenerator</a>
+                See <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/tools/NCSqlModelGenerator.html">NCSqlModelGenerator</a>
                 class for more details.
             </p>
         </li>
diff --git a/docs/server-and-probe.html b/docs/server-and-probe.html
index d671f07..9c2c2cb 100644
--- a/docs/server-and-probe.html
+++ b/docs/server-and-probe.html
@@ -101,13 +101,13 @@ id: server_and_probe
             <div class="tab-pane fade show" id="nav-srv-cmd" role="tabpanel">
                 <pre class="brush: plain">
                     $ cd build
-                    $ java -Xms1024m -cp apache-nlpcraft-{{site.latest_version}}-all-deps.jar org.nlpcraft.NCStart -server
+                    $ java -Xms1024m -cp apache-nlpcraft-{{site.latest_version}}-all-deps.jar org.apache.nlpcraft.NCStart -server
                 </pre>
             </div>
             <div class="tab-pane fade show" id="nav-srv-ide" role="tabpanel">
                 <p style="padding-top: 10px">
-                    Configure run configuration with the main class <code>org.nlpcraft.NCStart</code>.
-                    Note that <code>org.nlpcraft.NCStart</code> class starts both the REST server and the data probe and is the
+                    Configure run configuration with the main class <code>org.apache.nlpcraft.NCStart</code>.
+                    Note that <code>org.apache.nlpcraft.NCStart</code> class starts both the REST server and the data probe and is the
                     class that is configured as <code>Main-Class</code> in <code>apache-nlpcraft-{{site.latest_version}}-all-deps.jar</code>
                     JAR file manifest.
                 </p>
@@ -227,7 +227,7 @@ id: server_and_probe
             <div class="tab-pane fade show active" id="nav-probe-cmd" role="tabpanel">
                 <pre class="brush: plain">
                     $ cd build
-                    $ java -Xms1024m -cp apache-nlpcraft-{{site.latest_version}}-all-deps.jar:/my/project/classes org.nlpcraft.NCStart -probe -config=/my/project/probe.conf
+                    $ java -Xms1024m -cp apache-nlpcraft-{{site.latest_version}}-all-deps.jar:/my/project/classes org.apache.nlpcraft.NCStart -probe -config=/my/project/probe.conf
                 </pre>
                 <p>
                     Directory <code>/my/project/classes</code> should contain all compiled classes for your models.
@@ -237,12 +237,12 @@ id: server_and_probe
             </div>
             <div class="tab-pane fade show" id="nav-probe-ide" role="tabpanel">
                 <p style="padding-top: 10px">
-                    Configure run configuration with the main class <code>org.nlpcraft.NCStart</code>.
+                    Configure run configuration with the main class <code>org.apache.nlpcraft.NCStart</code>.
                 </p>
                 <div class="bq info">
-                    <b>Class <code>org.nlpcraft.NCStart</code></b>
+                    <b>Class <code>org.apache.nlpcraft.NCStart</code></b>
                     <p>
-                        Note that <code>org.nlpcraft.NCStart</code> class starts both the REST server and the data probe and is the
+                        Note that <code>org.apache.nlpcraft.NCStart</code> class starts both the REST server and the data probe and is the
                         class that is configured as <code>Main-Class</code> in <code>apache-nlpcraft-{{site.latest_version}}-all-deps.jar</code>
                         JAR file manifest.
                     </p>
@@ -280,10 +280,10 @@ id: server_and_probe
             </p>
             <pre class="brush: plain, highlight: 2">
                     $ cd build
-                    $ java -cp apache-nlpcraft-{{site.latest_version}}-all-deps.jar:/my/project/classes org.nlpcraft.NCStart -probe -config /my/project/probe.conf
+                    $ java -cp apache-nlpcraft-{{site.latest_version}}-all-deps.jar:/my/project/classes org.apache.nlpcraft.NCStart -probe -config /my/project/probe.conf
             </pre>
             Make sure to replace <code>/my/project/classes</code> with your own directory where your compiled model classes
-            are located. Note that you need to specify class <code>org.nlpcraft.NCStart</code> explicitly in this case.
+            are located. Note that you need to specify class <code>org.apache.nlpcraft.NCStart</code> explicitly in this case.
         </div>
         <p>
             When the data probe started you should see the log output similar to this:
@@ -308,11 +308,11 @@ id: server_and_probe
         | Down-Link       | localhost:8202                                   |
         | Up-Link         | localhost:8201                                   |
         +-----------------+--------------------------------------------------+
-        | Models          | org.nlpcraft.examples.alarm.AlarmModel           |
-        |                 | org.nlpcraft.examples.echo.EchoModel             |
-        |                 | org.nlpcraft.examples.helloworld.HelloWorldModel |
-        |                 | org.nlpcraft.examples.time.TimeModel             |
-        |                 | org.nlpcraft.examples.weather.WeatherModel       |
+        | Models          | org.apache.nlpcraft.examples.alarm.AlarmModel           |
+        |                 | org.apache.nlpcraft.examples.echo.EchoModel             |
+        |                 | org.apache.nlpcraft.examples.helloworld.HelloWorldModel |
+        |                 | org.apache.nlpcraft.examples.time.TimeModel             |
+        |                 | org.apache.nlpcraft.examples.weather.WeatherModel       |
         +-----------------+--------------------------------------------------+
         | Lifecycle       |                                                  |
         | JARs Folder     |                                                  |
@@ -421,13 +421,13 @@ nlpcraft {
         ...
 
         lifecycle = [
-            "org.nlpcraft.server.lifecycle.opencensus.NCJaegerExporter"
+            "org.apache.nlpcraft.server.lifecycle.opencensus.NCJaegerExporter"
         ]
 
         rest {
             host = "0.0.0.0"
             port = 8081
-            apiImpl = "org.nlpcraft.server.rest.NCBasicRestApi"
+            apiImpl = "org.apache.nlpcraft.server.rest.NCBasicRestApi"
         }
 
         ...
@@ -439,8 +439,8 @@ nlpcraft {
             </p>
             <p>
                 <code>CONFIG_FORCE_nlpcraft_server_rest_host=1.2.3.4</code><br>
-                <code>CONFIG_FORCE_nlpcraft_server_lifecycle.0=org.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter</code><br>
-                <code>CONFIG_FORCE_nlpcraft_server_lifecycle.1=org.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter</code>
+                <code>CONFIG_FORCE_nlpcraft_server_lifecycle.0=org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter</code><br>
+                <code>CONFIG_FORCE_nlpcraft_server_lifecycle.1=org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter</code>
             </p>
         </div>
     </section>
diff --git a/openapi/README.md b/openapi/README.md
index 72a9379..7455e03 100644
--- a/openapi/README.md
+++ b/openapi/README.md
@@ -9,7 +9,7 @@ For more REST API information:
 
 For any questions, feedback or suggestions:
 
- * View & run [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples)
+ * View & run [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples)
  * Latest [Javadoc](https://github.com/apache/incubator-nlpcraft/apis/latest/index.html) and [REST APIs](https://nlpcraft.org/using-rest.html)
  * Download & Maven/Grape/Gradle/SBT [instructions](https://nlpcraft.org/download.html)
  * File a bug or improvement in [JIRA](https://issues.apache.org/jira/projects/NLPCRAFT)
diff --git a/pom.xml b/pom.xml
index d3aab3e..fcec9f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
 
     <name>NLPCraft</name>
     <artifactId>nlpcraft</artifactId>
-    <groupId>org.nlpcraft</groupId>
+    <groupId>org.apache.nlpcraft</groupId>
     <version>0.5.0</version>
     <url>https://nlpcraft.apache.org</url>
     <description>An open source API to convert natural language into actions.</description>
@@ -569,25 +569,25 @@
                         ]]>
                     </top>
                     <subpackages>
-                        org.nlpcraft.model:org.nlpcraft.probe.embedded
+                        org.apache.nlpcraft.model:org.apache.nlpcraft.probe.embedded
                     </subpackages>
                     <excludePackageNames>
-                        org.nlpcraft.model.intent.utils:org.nlpcraft.model.impl:org.nlpcraft.model.builder.parsing:org.nlpcraft.model.builder.impl:org.nlpcraft.model.intent.impl
+                        org.apache.nlpcraft.model.intent.utils:org.apache.nlpcraft.model.impl:org.apache.nlpcraft.model.builder.parsing:org.apache.nlpcraft.model.builder.impl:org.apache.nlpcraft.model.intent.impl
                     </excludePackageNames>
                     <groups>
                         <group>
                             <title>Data Model APIs</title>
                             <packages>
-                                org.nlpcraft.model.opencensus:org.nlpcraft.model.factories.basic:org.nlpcraft.model.factories.spring:org.nlpcraft.model:org.nlpcraft.model.utils:org.nlpcraft.model.intent:org.nlpcraft.model.parsing
+                                org.apache.nlpcraft.model.opencensus:org.apache.nlpcraft.model.factories.basic:org.apache.nlpcraft.model.factories.spring:org.apache.nlpcraft.model:org.apache.nlpcraft.model.utils:org.apache.nlpcraft.model.intent:org.apache.nlpcraft.model.parsing
                             </packages>
                         </group>
                         <group>
                             <title>Embedded Probe</title>
-                            <packages>org.nlpcraft.probe.embedded</packages>
+                            <packages>org.apache.nlpcraft.probe.embedded</packages>
                         </group>
                         <group>
                             <title>Tools</title>
-                            <packages>org.nlpcraft.model.tools.sqlgen:org.nlpcraft.model.tools.test</packages>
+                            <packages>org.apache.nlpcraft.model.tools.sqlgen:org.apache.nlpcraft.model.tools.test</packages>
                         </group>
                     </groups>
                     <header>
@@ -599,7 +599,7 @@
                         <![CDATA[
                             <span style="vertical-align: super">Apache NLPCraft <span style="font-size: 80%">${project.version}</span></span>
                             <a style="vertical-align: super; margin-right: 10px" href="https://github.com/apache/incubator-nlpcraft" target="github"><i class="fa fa-github github-logo"></i></a>
-                            <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples" data-icon="octicon-eye" aria-label="NLPCraft Examples">Examples</a>
+                            <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples" data-icon="octicon-eye" aria-label="NLPCraft Examples">Examples</a>
                             <a class="github-button" href="https://github.com/apache/incubator-nlpcraft" data-icon="octicon-star" aria-label="Star on GitHub">Star</a>
                             <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/fork" data-icon="octicon-repo-forked" aria-label="Fork on GitHub">Fork</a>
                             <script type="text/javascript">
@@ -671,7 +671,7 @@
                                     <resource>reference.conf</resource>
                                 </transformer>
                                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-                                    <mainClass>org.nlpcraft.NCStart</mainClass>
+                                    <mainClass>org.apache.nlpcraft.NCStart</mainClass>
                                 </transformer>
                                 <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                     <resource>META-INF/spring.handlers</resource>
diff --git a/src/main/resources/ignite.xml b/src/main/resources/ignite.xml
index f1b51da..4b3d0eb 100644
--- a/src/main/resources/ignite.xml
+++ b/src/main/resources/ignite.xml
@@ -28,7 +28,7 @@
         http://www.springframework.org/schema/util/spring-util-2.0.xsd">
 
     <bean name="cache-store-session-listener" class="javax.cache.configuration.FactoryBuilder.ClassFactory">
-        <constructor-arg value="org.nlpcraft.server.tx.NCTxCacheStoreSessionListener"/>
+        <constructor-arg value="org.apache.nlpcraft.server.tx.NCTxCacheStoreSessionListener"/>
     </bean>
 
     <bean name="tcp-disco" class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index 78d967b..3e5d3b7 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -27,7 +27,7 @@
         <Root level="INFO">
             <AppenderRef ref="CONSOLE"/>
         </Root>
-        <Logger name="org.nlpcraft" level="INFO" additivity="false">
+        <Logger name="org.apache.nlpcraft" level="INFO" additivity="false">
             <AppenderRef ref="CONSOLE"/>
         </Logger>
         <Logger name="com.mchange" level="WARN" additivity="false">
diff --git a/src/main/resources/nlpcraft.conf b/src/main/resources/nlpcraft.conf
index 474bd90..efa9721 100644
--- a/src/main/resources/nlpcraft.conf
+++ b/src/main/resources/nlpcraft.conf
@@ -26,8 +26,8 @@
 #
 # Examples of environment variable usage:
 #   CONFIG_FORCE_nlpcraft_server_rest_host=localhost
-#   CONFIG_FORCE_nlpcraft_server_lifecycle.0=org.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter
-#   CONFIG_FORCE_nlpcraft_server_lifecycle.1=org.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter
+#   CONFIG_FORCE_nlpcraft_server_lifecycle.0=org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter
+#   CONFIG_FORCE_nlpcraft_server_lifecycle.1=org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter
 #
 # See https://nlpcraft.org/server-and-probe.html for more details.
 #
@@ -42,11 +42,11 @@ nlpcraft {
         # Each class should implement 'NCServerLifecycle' interface/trait and provide an no-arg constructor.
         #
         # The following built-in OpenCensus exporters are supported as lifecycle components:
-        # - org.nlpcraft.server.lifecycle.opencensus.NCJaegerExporter (traces)
-        # - org.nlpcraft.server.lifecycle.opencensus.NCZipkinExporter (traces)
-        # - org.nlpcraft.server.lifecycle.opencensus.NCPrometheusExporter (stats)
-        # - org.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter (traces)
-        # - org.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter (stats)
+        # - org.apache.nlpcraft.server.lifecycle.opencensus.NCJaegerExporter (traces)
+        # - org.apache.nlpcraft.server.lifecycle.opencensus.NCZipkinExporter (traces)
+        # - org.apache.nlpcraft.server.lifecycle.opencensus.NCPrometheusExporter (stats)
+        # - org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter (traces)
+        # - org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter (stats)
         #
         # NOTE: all built-in trace exporters use "always" sampling that is only suitable
         # for demo or development purposes. For production usage you need to modify the
@@ -143,7 +143,7 @@ nlpcraft {
             # NOTE: 'localhost' or '127.0.0.1' don't work from Docker container.
             host = "0.0.0.0"
             port = 8081
-            apiImpl = "org.nlpcraft.server.rest.NCBasicRestApi"
+            apiImpl = "org.apache.nlpcraft.server.rest.NCBasicRestApi"
         }
 
         # User manager configuration.
@@ -234,29 +234,29 @@ nlpcraft {
         # NOTE: These are ALL examples.
         #       Start data probe with this configuration file to deploy all example data models.
         models = [
-            "org.nlpcraft.examples.alarm.AlarmModel",
-            "org.nlpcraft.examples.echo.EchoModel",
-            "org.nlpcraft.examples.helloworld.HelloWorldModel",
-            "org.nlpcraft.examples.time.TimeModel",
-            "org.nlpcraft.examples.weather.WeatherModel",
-            "org.nlpcraft.examples.lightswitch.LightSwitchModel",
-            "org.nlpcraft.examples.sql.SqlModel"
+            "org.apache.nlpcraft.examples.alarm.AlarmModel",
+            "org.apache.nlpcraft.examples.echo.EchoModel",
+            "org.apache.nlpcraft.examples.helloworld.HelloWorldModel",
+            "org.apache.nlpcraft.examples.time.TimeModel",
+            "org.apache.nlpcraft.examples.weather.WeatherModel",
+            "org.apache.nlpcraft.examples.lightswitch.LightSwitchModel",
+            "org.apache.nlpcraft.examples.sql.SqlModel"
 
             // Requires 'google' on the server side.
             // See https://nlpcraft.org/integrations.html#nlp for more details
             // on how to configure 3rd party token providers.
-            // "org.nlpcraft.examples.phone.PhoneModel"
+            // "org.apache.nlpcraft.examples.phone.PhoneModel"
         ]
 
         # Specify class names for probe life cycle components.
         # Each class should extend 'NCProbeLifecycle' interface and provide a no-arg constructor.
         #
         # The following built-in OpenCensus exporters are supported as lifecycle components:
-        # - org.nlpcraft.model.opencensus.NCJaegerExporter (traces)
-        # - org.nlpcraft.model.opencensus.NCZipkinExporter (traces)
-        # - org.nlpcraft.model.opencensus.NCPrometheusExporter (stats)
-        # - org.nlpcraft.model.opencensus.NCStackdriverTraceExporter (traces)
-        # - org.nlpcraft.model.opencensus.NCStackdriverStatsExporter (stats)
+        # - org.apache.nlpcraft.model.opencensus.NCJaegerExporter (traces)
+        # - org.apache.nlpcraft.model.opencensus.NCZipkinExporter (traces)
+        # - org.apache.nlpcraft.model.opencensus.NCPrometheusExporter (stats)
+        # - org.apache.nlpcraft.model.opencensus.NCStackdriverTraceExporter (traces)
+        # - org.apache.nlpcraft.model.opencensus.NCStackdriverStatsExporter (stats)
         lifecycle = [
         ]
 
diff --git a/src/main/scala/org/nlpcraft/NCStart.scala b/src/main/scala/org/apache/nlpcraft/NCStart.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/NCStart.scala
rename to src/main/scala/org/apache/nlpcraft/NCStart.scala
index 19333ee..bd57713 100644
--- a/src/main/scala/org/nlpcraft/NCStart.scala
+++ b/src/main/scala/org/apache/nlpcraft/NCStart.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft
+package org.apache.nlpcraft
 
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.common.version.NCVersion
-import org.nlpcraft.probe.NCProbe
-import org.nlpcraft.server.NCServer
+import org.apache.nlpcraft.common.version.NCVersion
+import org.apache.nlpcraft.probe.NCProbe
+import org.apache.nlpcraft.server.NCServer
 
 /**
   * Server or probe command line starter.
@@ -37,7 +37,7 @@ object NCStart extends App with LazyLogging {
 
         /**
           *
-          * @param idx
+          * @param p
           * @return
           */
         def removeParam(p: String): Array[String] = seq.filter(_ != p).toArray
diff --git a/src/main/scala/org/nlpcraft/common/NCErrorCodes.scala b/src/main/scala/org/apache/nlpcraft/common/NCErrorCodes.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/common/NCErrorCodes.scala
rename to src/main/scala/org/apache/nlpcraft/common/NCErrorCodes.scala
index cedc153..c51169a 100644
--- a/src/main/scala/org/nlpcraft/common/NCErrorCodes.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/NCErrorCodes.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common
+package org.apache.nlpcraft.common
 
 /**
   * Rejection error codes.
diff --git a/src/main/scala/org/nlpcraft/common/NCException.scala b/src/main/scala/org/apache/nlpcraft/common/NCException.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/common/NCException.scala
rename to src/main/scala/org/apache/nlpcraft/common/NCException.scala
index f530328..2422735 100644
--- a/src/main/scala/org/nlpcraft/common/NCException.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/NCException.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common
+package org.apache.nlpcraft.common
 
 /**
   * Base NLPCraft (NC) exception.
diff --git a/src/main/scala/org/nlpcraft/common/NCService.scala b/src/main/scala/org/apache/nlpcraft/common/NCService.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/common/NCService.scala
rename to src/main/scala/org/apache/nlpcraft/common/NCService.scala
index 1cbdf82..365a98f 100644
--- a/src/main/scala/org/nlpcraft/common/NCService.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/NCService.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common
+package org.apache.nlpcraft.common
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.trace.Span
-import org.nlpcraft.common.opencensus.NCOpenCensusTrace
+import org.apache.nlpcraft.common.opencensus.NCOpenCensusTrace
 
 import scala.compat.Platform._
 
diff --git a/src/main/scala/org/nlpcraft/common/ascii/NCAsciiLike.scala b/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiLike.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/common/ascii/NCAsciiLike.scala
rename to src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiLike.scala
index 7ff3d2f..5e55774 100644
--- a/src/main/scala/org/nlpcraft/common/ascii/NCAsciiLike.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiLike.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.ascii
+package org.apache.nlpcraft.common.ascii
 
 /**
  * Marker trait for classes that support ASCII-based output using `NCAsciiTable`.
diff --git a/src/main/scala/org/nlpcraft/common/ascii/NCAsciiTable.scala b/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/common/ascii/NCAsciiTable.scala
rename to src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
index 3284be6..e483e50 100644
--- a/src/main/scala/org/nlpcraft/common/ascii/NCAsciiTable.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.ascii
+package org.apache.nlpcraft.common.ascii
 
 import java.io.{IOException, PrintStream}
 
 import com.typesafe.scalalogging.Logger
-import org.nlpcraft.common._
-import org.nlpcraft.common.ascii.NCAsciiTable._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.ascii.NCAsciiTable._
 import resource._
 
 import scala.collection.JavaConverters._
diff --git a/src/main/scala/org/nlpcraft/common/blowfish/NCBlowfishHasher.java b/src/main/scala/org/apache/nlpcraft/common/blowfish/NCBlowfishHasher.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/common/blowfish/NCBlowfishHasher.java
rename to src/main/scala/org/apache/nlpcraft/common/blowfish/NCBlowfishHasher.java
index 497d84c..a28d1e1 100644
--- a/src/main/scala/org/nlpcraft/common/blowfish/NCBlowfishHasher.java
+++ b/src/main/scala/org/apache/nlpcraft/common/blowfish/NCBlowfishHasher.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.blowfish;
+package org.apache.nlpcraft.common.blowfish;
 
 import java.nio.charset.StandardCharsets;
 import java.security.SecureRandom;
diff --git a/src/main/scala/org/nlpcraft/common/config/NCConfigurable.scala b/src/main/scala/org/apache/nlpcraft/common/config/NCConfigurable.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/common/config/NCConfigurable.scala
rename to src/main/scala/org/apache/nlpcraft/common/config/NCConfigurable.scala
index bf2db26..b0cb272 100644
--- a/src/main/scala/org/nlpcraft/common/config/NCConfigurable.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/config/NCConfigurable.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.config
+package org.apache.nlpcraft.common.config
 
 import com.typesafe.config.{Config, ConfigFactory}
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.common.NCE
+import org.apache.nlpcraft.common.NCE
 
 import scala.collection.JavaConverters._
 
@@ -277,8 +277,8 @@ object NCConfigurable extends LazyLogging {
       * <p>
       * Examples:
       *   CONFIG_FORCE_nlpcraft_server_rest_host=localhost
-      *   CONFIG_FORCE_nlpcraft_server_lifecycle.0=org.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter
-      *   CONFIG_FORCE_nlpcraft_server_lifecycle.1=org.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter
+      *   CONFIG_FORCE_nlpcraft_server_lifecycle.0=org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverTraceExporter
+      *   CONFIG_FORCE_nlpcraft_server_lifecycle.1=org.apache.nlpcraft.server.lifecycle.opencensus.NCStackdriverStatsExporter
       *
       * @param overrideCfg Optional overriding configuration.
       * @param cfgFileOpt Optional file name.
diff --git a/src/main/scala/org/nlpcraft/common/config/NCConfigurableJava.scala b/src/main/scala/org/apache/nlpcraft/common/config/NCConfigurableJava.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/common/config/NCConfigurableJava.scala
rename to src/main/scala/org/apache/nlpcraft/common/config/NCConfigurableJava.scala
index 60eac29..72bacf0 100644
--- a/src/main/scala/org/nlpcraft/common/config/NCConfigurableJava.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/config/NCConfigurableJava.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.config
+package org.apache.nlpcraft.common.config
 
 /**
   * Quick adapter for usage in Java code.
diff --git a/src/main/scala/org/nlpcraft/common/crypto/NCCipher.scala b/src/main/scala/org/apache/nlpcraft/common/crypto/NCCipher.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/common/crypto/NCCipher.scala
rename to src/main/scala/org/apache/nlpcraft/common/crypto/NCCipher.scala
index 33936be..1c8885f 100644
--- a/src/main/scala/org/nlpcraft/common/crypto/NCCipher.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/crypto/NCCipher.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.crypto
+package org.apache.nlpcraft.common.crypto
 
 import java.security.{Key, SecureRandom, GeneralSecurityException ⇒ GSE}
 
 import javax.crypto.Cipher
 import javax.crypto.spec.{IvParameterSpec, SecretKeySpec}
 import org.apache.commons.codec.binary.Base64
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 
 import scala.util.control.Exception._
 
diff --git a/src/main/scala/org/nlpcraft/common/debug/NCLogHolder.scala b/src/main/scala/org/apache/nlpcraft/common/debug/NCLogHolder.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/common/debug/NCLogHolder.scala
rename to src/main/scala/org/apache/nlpcraft/common/debug/NCLogHolder.scala
index 18303e9..eee555e 100644
--- a/src/main/scala/org/nlpcraft/common/debug/NCLogHolder.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/debug/NCLogHolder.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.debug
+package org.apache.nlpcraft.common.debug
 
 import java.util
 import com.google.gson.Gson
-import org.nlpcraft.common.util.NCUtils
-import org.nlpcraft.model._
+import org.apache.nlpcraft.common.util.NCUtils
+import org.apache.nlpcraft.model._
 
 import scala.collection.JavaConverters._
 
@@ -30,7 +30,7 @@ import scala.collection.JavaConverters._
 
 case class NCLogGroupToken(token: NCToken, used: Boolean, conversation: Boolean)
 
-import org.nlpcraft.common.debug.NCLogHolder._
+import org.apache.nlpcraft.common.debug.NCLogHolder._
 
 /**
   * Log data holder.
diff --git a/src/main/scala/org/nlpcraft/common/makro/NCMacroParser.scala b/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/common/makro/NCMacroParser.scala
rename to src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala
index 92b50cd..b1b4c31 100644
--- a/src/main/scala/org/nlpcraft/common/makro/NCMacroParser.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.makro
+package org.apache.nlpcraft.common.makro
 
-import org.nlpcraft.common._
-import org.nlpcraft.common.util.NCUtils._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.util.NCUtils._
 
 import scala.collection.JavaConverters._
 import scala.collection._
diff --git a/src/main/scala/org/nlpcraft/common/nlp/NCNlpSentence.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentence.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/common/nlp/NCNlpSentence.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentence.scala
index e5a3285..fdecb85 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/NCNlpSentence.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentence.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp
+package org.apache.nlpcraft.common.nlp
 
 import scala.collection._
 import scala.collection.mutable.ArrayBuffer
diff --git a/src/main/scala/org/nlpcraft/common/nlp/NCNlpSentenceNote.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentenceNote.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/common/nlp/NCNlpSentenceNote.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentenceNote.scala
index 88694ef..acf007a 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/NCNlpSentenceNote.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentenceNote.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp
+package org.apache.nlpcraft.common.nlp
 
 
-import org.nlpcraft.common._
-import org.nlpcraft.common.ascii._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.ascii._
 
 import scala.collection.JavaConverters._
 import scala.collection.mutable
diff --git a/src/main/scala/org/nlpcraft/common/nlp/NCNlpSentenceToken.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentenceToken.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/common/nlp/NCNlpSentenceToken.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentenceToken.scala
index 976b666..be4c467 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/NCNlpSentenceToken.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentenceToken.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp
+package org.apache.nlpcraft.common.nlp
 
-import org.nlpcraft.common.nlp.pos._
+import org.apache.nlpcraft.common.nlp.pos._
 
 import scala.collection.JavaConverters._
 import scala.collection.mutable
diff --git a/src/main/scala/org/nlpcraft/common/nlp/NCNlpSentenceTokenBuffer.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentenceTokenBuffer.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/common/nlp/NCNlpSentenceTokenBuffer.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentenceTokenBuffer.scala
index 45b09bb..cd18f13 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/NCNlpSentenceTokenBuffer.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/NCNlpSentenceTokenBuffer.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp
+package org.apache.nlpcraft.common.nlp
 
 import scala.collection.mutable.ArrayBuffer
 import scala.collection.{Seq, IndexedSeq ⇒ IdxSeq}
diff --git a/src/main/scala/org/nlpcraft/common/nlp/core/NCNlpCoreManager.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpCoreManager.scala
similarity index 88%
rename from src/main/scala/org/nlpcraft/common/nlp/core/NCNlpCoreManager.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpCoreManager.scala
index 87e5203..0896af7 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/core/NCNlpCoreManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpCoreManager.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.core
+package org.apache.nlpcraft.common.nlp.core
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.{NCE, NCService, _}
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.{NCE, NCService, _}
 
 
 /**
@@ -51,8 +51,8 @@ object NCNlpCoreManager extends NCService {
       
         tokenizer =
             Config.engine match {
-                case "stanford" ⇒ U.mkObject("org.nlpcraft.common.nlp.core.stanford.NCStanfordTokenizer")
-                case "opennlp" ⇒ U.mkObject("org.nlpcraft.common.nlp.core.opennlp.NCOpenNlpTokenizer")
+                case "stanford" ⇒ U.mkObject("org.apache.nlpcraft.common.nlp.core.stanford.NCStanfordTokenizer")
+                case "opennlp" ⇒ U.mkObject("org.apache.nlpcraft.common.nlp.core.opennlp.NCOpenNlpTokenizer")
         
                 case _ ⇒ throw new AssertionError(s"Unexpected engine: ${Config.engine}")
             }
diff --git a/src/main/scala/org/nlpcraft/common/nlp/core/NCNlpCoreToken.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpCoreToken.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/common/nlp/core/NCNlpCoreToken.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpCoreToken.scala
index 38fc6ac..fb4a682 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/core/NCNlpCoreToken.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpCoreToken.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.core
+package org.apache.nlpcraft.common.nlp.core
 
 /**
   * Token data.
diff --git a/src/main/scala/org/nlpcraft/common/nlp/core/NCNlpPorterStemmer.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpPorterStemmer.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/common/nlp/core/NCNlpPorterStemmer.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpPorterStemmer.scala
index 47b8edc..c27c6dd 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/core/NCNlpPorterStemmer.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpPorterStemmer.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.core
+package org.apache.nlpcraft.common.nlp.core
 
 import scala.language.{implicitConversions, postfixOps}
 
diff --git a/src/main/scala/org/nlpcraft/common/nlp/core/NCNlpTokenizer.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpTokenizer.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/common/nlp/core/NCNlpTokenizer.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpTokenizer.scala
index 8580c32..5e551b3 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/core/NCNlpTokenizer.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/core/NCNlpTokenizer.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.core
+package org.apache.nlpcraft.common.nlp.core
 
-import org.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.NCService
 
 /**
   * NLP tokenizer.
diff --git a/src/main/scala/org/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala
similarity index 91%
rename from src/main/scala/org/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala
index 9f5fac7..042d245 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.core.opennlp
+package org.apache.nlpcraft.common.nlp.core.opennlp
 
 import java.io.BufferedInputStream
 
 import io.opencensus.trace.Span
 import opennlp.tools.tokenize.{Tokenizer, TokenizerME, TokenizerModel}
-import org.nlpcraft.common.nlp.core.{NCNlpCoreToken, NCNlpTokenizer}
-import org.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.common.nlp.core.{NCNlpCoreToken, NCNlpTokenizer}
+import org.apache.nlpcraft.common.{NCService, _}
 import resource.managed
 
 import scala.language.{implicitConversions, postfixOps}
diff --git a/src/main/scala/org/nlpcraft/common/nlp/core/stanford/NCStanfordTokenizer.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/core/stanford/NCStanfordTokenizer.scala
similarity index 88%
rename from src/main/scala/org/nlpcraft/common/nlp/core/stanford/NCStanfordTokenizer.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/core/stanford/NCStanfordTokenizer.scala
index eefe092..5c4cd3a 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/core/stanford/NCStanfordTokenizer.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/core/stanford/NCStanfordTokenizer.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.core.stanford
+package org.apache.nlpcraft.common.nlp.core.stanford
 
 import java.io.StringReader
 
 import edu.stanford.nlp.process.PTBTokenizer
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.nlp.core.{NCNlpCoreToken, NCNlpTokenizer}
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.nlp.core.{NCNlpCoreToken, NCNlpTokenizer}
 import scala.collection.JavaConverters._
 
 /**
diff --git a/src/main/scala/org/nlpcraft/common/nlp/dict/NCDictionaryManager.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/dict/NCDictionaryManager.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/common/nlp/dict/NCDictionaryManager.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/dict/NCDictionaryManager.scala
index 607152e..c5bdcc7 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/dict/NCDictionaryManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/dict/NCDictionaryManager.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.dict
+package org.apache.nlpcraft.common.nlp.dict
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.nlp.dict.NCDictionaryType._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.nlp.dict.NCDictionaryType._
 
 /**
  * English dictionary.
diff --git a/src/main/scala/org/nlpcraft/common/nlp/dict/NCDictionaryType.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/dict/NCDictionaryType.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/common/nlp/dict/NCDictionaryType.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/dict/NCDictionaryType.scala
index 08b5f3e..513521b 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/dict/NCDictionaryType.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/dict/NCDictionaryType.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.dict
+package org.apache.nlpcraft.common.nlp.dict
 
 /**
  * Dictionary type.
diff --git a/src/main/scala/org/nlpcraft/common/nlp/numeric/NCNumericGenerator.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/numeric/NCNumericGenerator.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/common/nlp/numeric/NCNumericGenerator.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/numeric/NCNumericGenerator.scala
index 3822cff..ba6e11a 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/numeric/NCNumericGenerator.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/numeric/NCNumericGenerator.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.numeric
+package org.apache.nlpcraft.common.nlp.numeric
 
 import java.text.DecimalFormat
 
diff --git a/src/main/scala/org/nlpcraft/common/nlp/numeric/NCNumericManager.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/numeric/NCNumericManager.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/common/nlp/numeric/NCNumericManager.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/numeric/NCNumericManager.scala
index a2e6fd5..64f7cfa 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/numeric/NCNumericManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/numeric/NCNumericManager.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.numeric
+package org.apache.nlpcraft.common.nlp.numeric
 
 import java.text.{DecimalFormat, ParseException}
 import java.util.Locale
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.nlp._
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.nlp._
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
 
 case class NCNumericUnit(name: String, unitType: String)
 case class NCNumeric(
diff --git a/src/main/scala/org/nlpcraft/common/nlp/pos/NCPennTreebank.scala b/src/main/scala/org/apache/nlpcraft/common/nlp/pos/NCPennTreebank.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/common/nlp/pos/NCPennTreebank.scala
rename to src/main/scala/org/apache/nlpcraft/common/nlp/pos/NCPennTreebank.scala
index b94cf62..70dbe51 100644
--- a/src/main/scala/org/nlpcraft/common/nlp/pos/NCPennTreebank.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/nlp/pos/NCPennTreebank.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.nlp.pos
+package org.apache.nlpcraft.common.nlp.pos
 
 import scala.collection.immutable.HashMap
 
diff --git a/src/main/scala/org/nlpcraft/common/opencensus/NCOpenCensusTrace.scala b/src/main/scala/org/apache/nlpcraft/common/opencensus/NCOpenCensusTrace.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/common/opencensus/NCOpenCensusTrace.scala
rename to src/main/scala/org/apache/nlpcraft/common/opencensus/NCOpenCensusTrace.scala
index 57efd3f..e56dd75 100644
--- a/src/main/scala/org/nlpcraft/common/opencensus/NCOpenCensusTrace.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/opencensus/NCOpenCensusTrace.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.opencensus
+package org.apache.nlpcraft.common.opencensus
 
 import io.opencensus.common.Scope
 import io.opencensus.trace._
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 
 import scala.util.control.NonFatal
 
diff --git a/src/main/scala/org/nlpcraft/common/package.scala b/src/main/scala/org/apache/nlpcraft/common/package.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/common/package.scala
rename to src/main/scala/org/apache/nlpcraft/common/package.scala
index 450a3d6..9135af9 100644
--- a/src/main/scala/org/nlpcraft/common/package.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/package.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft
+package org.apache.nlpcraft
 
 import java.util.concurrent.Callable
 import java.util.function.{BiPredicate, Consumer, Supplier, Function ⇒ JFunction, Predicate ⇒ JPredicate}
 
-import org.nlpcraft.common.util.NCUtils
+import org.apache.nlpcraft.common.util.NCUtils
 
 import scala.language.implicitConversions
 
@@ -28,7 +28,7 @@ import scala.language.implicitConversions
   * Package scope.
   */
 package object common {
-    // Type aliases for `org.nlpcraft`
+    // Type aliases for `org.apache.nlpcraft`
     type NCE = NCException
     final val U = NCUtils
     
diff --git a/src/main/scala/org/nlpcraft/common/socket/NCSocket.scala b/src/main/scala/org/apache/nlpcraft/common/socket/NCSocket.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/common/socket/NCSocket.scala
rename to src/main/scala/org/apache/nlpcraft/common/socket/NCSocket.scala
index 8bcf501..e2e3b35 100644
--- a/src/main/scala/org/nlpcraft/common/socket/NCSocket.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/socket/NCSocket.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.socket
+package org.apache.nlpcraft.common.socket
 
 import java.io._
 import java.net.Socket
@@ -23,8 +23,8 @@ import java.security.Key
 import java.util.Base64
 
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.common._
-import org.nlpcraft.common.crypto.NCCipher
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.crypto.NCCipher
 
 /**
   * Socket wrapper that does optional encryption and uses HTTP POST protocol for sending and receiving.
diff --git a/src/main/scala/org/nlpcraft/common/util/NCIdGenerator.java b/src/main/scala/org/apache/nlpcraft/common/util/NCIdGenerator.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/common/util/NCIdGenerator.java
rename to src/main/scala/org/apache/nlpcraft/common/util/NCIdGenerator.java
index 0cc8ccf..06aa1c7 100644
--- a/src/main/scala/org/nlpcraft/common/util/NCIdGenerator.java
+++ b/src/main/scala/org/apache/nlpcraft/common/util/NCIdGenerator.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.util;
+package org.apache.nlpcraft.common.util;
 
 import java.util.*;
 
diff --git a/src/main/scala/org/nlpcraft/common/util/NCUtils.scala b/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/common/util/NCUtils.scala
rename to src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
index 3c0db4f..8c67e94 100644
--- a/src/main/scala/org/nlpcraft/common/util/NCUtils.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.util
+package org.apache.nlpcraft.common.util
 
 import java.io._
 import java.math.RoundingMode
@@ -37,8 +37,8 @@ import com.typesafe.scalalogging.{LazyLogging, Logger}
 import org.apache.commons.codec.binary.Base64
 import org.apache.commons.codec.digest.DigestUtils
 import org.apache.commons.io.IOUtils
-import org.nlpcraft.common._
-import org.nlpcraft.common.blowfish.NCBlowfishHasher
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.blowfish.NCBlowfishHasher
 import resource._
 
 import scala.annotation.tailrec
diff --git a/src/main/scala/org/nlpcraft/common/version/NCVersion.scala b/src/main/scala/org/apache/nlpcraft/common/version/NCVersion.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/common/version/NCVersion.scala
rename to src/main/scala/org/apache/nlpcraft/common/version/NCVersion.scala
index aafd035..f547dec 100644
--- a/src/main/scala/org/nlpcraft/common/version/NCVersion.scala
+++ b/src/main/scala/org/apache/nlpcraft/common/version/NCVersion.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.version
+package org.apache.nlpcraft.common.version
 
 import java.time.LocalDate
 
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 
 /**
   * Release version holder. Note that this is manually changing property. For every official
diff --git a/src/main/scala/org/nlpcraft/examples/README.md b/src/main/scala/org/apache/nlpcraft/examples/README.md
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/README.md
rename to src/main/scala/org/apache/nlpcraft/examples/README.md
diff --git a/src/main/scala/org/nlpcraft/examples/alarm/AlarmModel.java b/src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmModel.java
similarity index 90%
rename from src/main/scala/org/nlpcraft/examples/alarm/AlarmModel.java
rename to src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmModel.java
index fc7d860..4c81dda 100644
--- a/src/main/scala/org/nlpcraft/examples/alarm/AlarmModel.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmModel.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.alarm;
+package org.apache.nlpcraft.examples.alarm;
 
-import org.nlpcraft.model.NCModelFileAdapter;
-import org.nlpcraft.model.NCResult;
-import org.nlpcraft.model.NCRejection;
-import org.nlpcraft.model.NCToken;
-import org.nlpcraft.model.NCIntentRef;
-import org.nlpcraft.model.NCIntentMatch;
-import org.nlpcraft.model.NCIntentTerm;
+import org.apache.nlpcraft.model.NCModelFileAdapter;
+import org.apache.nlpcraft.model.NCResult;
+import org.apache.nlpcraft.model.NCRejection;
+import org.apache.nlpcraft.model.NCToken;
+import org.apache.nlpcraft.model.NCIntentRef;
+import org.apache.nlpcraft.model.NCIntentMatch;
+import org.apache.nlpcraft.model.NCIntentTerm;
 
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -54,7 +54,7 @@ public class AlarmModel extends NCModelFileAdapter {
     
     public AlarmModel() {
         // Loading the model from the file in the classpath.
-        super("org/nlpcraft/examples/alarm/alarm_model.json");
+        super("org/apache/nlpcraft/examples/alarm/alarm_model.json");
     }
 
     /**
diff --git a/src/main/scala/org/nlpcraft/examples/alarm/AlarmTest.java b/src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmTest.java
similarity index 88%
rename from src/main/scala/org/nlpcraft/examples/alarm/AlarmTest.java
rename to src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmTest.java
index f21643e..fe027c9 100644
--- a/src/main/scala/org/nlpcraft/examples/alarm/AlarmTest.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmTest.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.alarm;
+package org.apache.nlpcraft.examples.alarm;
 
 import org.junit.jupiter.api.*;
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.model.tools.test.NCTestClient;
-import org.nlpcraft.model.tools.test.NCTestClientBuilder;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.model.tools.test.NCTestClient;
+import org.apache.nlpcraft.model.tools.test.NCTestClientBuilder;
 
 import java.io.IOException;
 
diff --git a/src/main/scala/org/nlpcraft/examples/alarm/README.md b/src/main/scala/org/apache/nlpcraft/examples/alarm/README.md
similarity index 86%
rename from src/main/scala/org/nlpcraft/examples/alarm/README.md
rename to src/main/scala/org/apache/nlpcraft/examples/alarm/README.md
index 4a0d3d4..b22b26d 100644
--- a/src/main/scala/org/nlpcraft/examples/alarm/README.md
+++ b/src/main/scala/org/apache/nlpcraft/examples/alarm/README.md
@@ -11,15 +11,15 @@ When the timers is up it will simply print out "BEEP BEEP BEEP" in the probe con
 ### Running
 You can run this example from command line or IDE in a similar way:
  1. Run REST server:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **Program arguments:** `-server`
  2. Run data probe:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **VM arguments:** `-Dconfig.override_with_env_vars=true`
-    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.nlpcraft.examples.lightswitch.LightSwitchModel`
+    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.apache.nlpcraft.examples.lightswitch.LightSwitchModel`
     * **Program arguments:** `-probe`
  2. Run test:
-    * **JUnit 5 test:** `org.nlpcraft.examples.alarm.AlarmTest`
+    * **JUnit 5 test:** `org.apache.nlpcraft.examples.alarm.AlarmTest`
     * or use NLPCraft [REST APIs](https://nlpcraft.org/using-rest.html) with your favorite REST client
 
 ### Documentation
@@ -27,7 +27,7 @@ See [Getting Started](https://nlpcraft.org/getting-started.html) guide for more
 
 For any questions, feedback or suggestions:
 
- * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples)
+ * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples)
  * Latest [Javadoc](https://github.com/apache/incubator-nlpcraft/apis/latest/index.html) and [REST APIs](https://nlpcraft.org/using-rest.html)
  * Download & Maven/Grape/Gradle/SBT [instructions](https://nlpcraft.org/download.html)
  * File a bug or improvement in [JIRA](https://issues.apache.org/jira/projects/NLPCRAFT)
diff --git a/src/main/scala/org/nlpcraft/examples/alarm/alarm_model.json b/src/main/scala/org/apache/nlpcraft/examples/alarm/alarm_model.json
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/alarm/alarm_model.json
rename to src/main/scala/org/apache/nlpcraft/examples/alarm/alarm_model.json
diff --git a/src/main/scala/org/nlpcraft/examples/echo/EchoModel.scala b/src/main/scala/org/apache/nlpcraft/examples/echo/EchoModel.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/examples/echo/EchoModel.scala
rename to src/main/scala/org/apache/nlpcraft/examples/echo/EchoModel.scala
index 919e48d..6384062 100644
--- a/src/main/scala/org/nlpcraft/examples/echo/EchoModel.scala
+++ b/src/main/scala/org/apache/nlpcraft/examples/echo/EchoModel.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.echo
+package org.apache.nlpcraft.examples.echo
 
 import java.util
 
 import com.google.gson.Gson
-import org.nlpcraft.model._
+import org.apache.nlpcraft.model._
 
 /**
   * Echo example data model.
diff --git a/src/main/scala/org/nlpcraft/examples/echo/EchoTest.java b/src/main/scala/org/apache/nlpcraft/examples/echo/EchoTest.java
similarity index 88%
rename from src/main/scala/org/nlpcraft/examples/echo/EchoTest.java
rename to src/main/scala/org/apache/nlpcraft/examples/echo/EchoTest.java
index d420918..b10c38c 100644
--- a/src/main/scala/org/nlpcraft/examples/echo/EchoTest.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/echo/EchoTest.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.echo;
+package org.apache.nlpcraft.examples.echo;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.model.tools.test.NCTestClient;
-import org.nlpcraft.model.tools.test.NCTestClientBuilder;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.model.tools.test.NCTestClient;
+import org.apache.nlpcraft.model.tools.test.NCTestClientBuilder;
 
 import java.io.IOException;
 
diff --git a/src/main/scala/org/nlpcraft/examples/echo/README.md b/src/main/scala/org/apache/nlpcraft/examples/echo/README.md
similarity index 87%
rename from src/main/scala/org/nlpcraft/examples/echo/README.md
rename to src/main/scala/org/apache/nlpcraft/examples/echo/README.md
index 3e1cc7a..57e3877 100644
--- a/src/main/scala/org/nlpcraft/examples/echo/README.md
+++ b/src/main/scala/org/apache/nlpcraft/examples/echo/README.md
@@ -14,15 +14,15 @@ object properties are available.
 ### Running
 You can run this example from command line or IDE in a similar way:
  1. Run REST server:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **Program arguments:** `-server`
  2. Run data probe:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **VM arguments:** `-Dconfig.override_with_env_vars=true`
-    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.nlpcraft.examples.echo.EchoModel`
+    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.apache.nlpcraft.examples.echo.EchoModel`
     * **Program arguments:** `-probe`
  2. Run test:
-    * **JUnit 5 test:** `org.nlpcraft.examples.echo.EchoTest`
+    * **JUnit 5 test:** `org.apache.nlpcraft.examples.echo.EchoTest`
     * or use NLPCraft [REST APIs](https://nlpcraft.org/using-rest.html) with your favorite REST client
 
 ### Documentation  
@@ -30,7 +30,7 @@ See [Getting Started](https://nlpcraft.org/getting-started.html) guide for more
 
 For any questions, feedback or suggestions:
 
- * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples)
+ * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples)
  * Latest [Javadoc](https://github.com/apache/incubator-nlpcraft/apis/latest/index.html) and [REST APIs](https://nlpcraft.org/using-rest.html)
  * Download & Maven/Grape/Gradle/SBT [instructions](https://nlpcraft.org/download.html)
  * File a bug or improvement in [JIRA](https://issues.apache.org/jira/projects/NLPCRAFT)
diff --git a/src/main/scala/org/nlpcraft/examples/helloworld/HelloWorldModel.java b/src/main/scala/org/apache/nlpcraft/examples/helloworld/HelloWorldModel.java
similarity index 92%
rename from src/main/scala/org/nlpcraft/examples/helloworld/HelloWorldModel.java
rename to src/main/scala/org/apache/nlpcraft/examples/helloworld/HelloWorldModel.java
index 0ce87d2..8b07e7d 100644
--- a/src/main/scala/org/nlpcraft/examples/helloworld/HelloWorldModel.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/helloworld/HelloWorldModel.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.helloworld;
+package org.apache.nlpcraft.examples.helloworld;
 
-import org.nlpcraft.common.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.model.*;
 
 /**
  * Hello World example data model.
diff --git a/src/main/scala/org/nlpcraft/examples/helloworld/HelloWorldTest.java b/src/main/scala/org/apache/nlpcraft/examples/helloworld/HelloWorldTest.java
similarity index 89%
rename from src/main/scala/org/nlpcraft/examples/helloworld/HelloWorldTest.java
rename to src/main/scala/org/apache/nlpcraft/examples/helloworld/HelloWorldTest.java
index 6d1ea6b..61ba5df 100644
--- a/src/main/scala/org/nlpcraft/examples/helloworld/HelloWorldTest.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/helloworld/HelloWorldTest.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.helloworld;
+package org.apache.nlpcraft.examples.helloworld;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.model.tools.test.NCTestClient;
-import org.nlpcraft.model.tools.test.NCTestClientBuilder;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.model.tools.test.NCTestClient;
+import org.apache.nlpcraft.model.tools.test.NCTestClientBuilder;
 
 import java.io.IOException;
 
diff --git a/src/main/scala/org/nlpcraft/examples/helloworld/README.md b/src/main/scala/org/apache/nlpcraft/examples/helloworld/README.md
similarity index 85%
rename from src/main/scala/org/nlpcraft/examples/helloworld/README.md
rename to src/main/scala/org/apache/nlpcraft/examples/helloworld/README.md
index 11d5809..044b069 100644
--- a/src/main/scala/org/nlpcraft/examples/helloworld/README.md
+++ b/src/main/scala/org/apache/nlpcraft/examples/helloworld/README.md
@@ -9,15 +9,15 @@ This is the simplest and shortest user model that can be defined.
 ### Running
 You can run this example from command line or IDE in a similar way:
  1. Run REST server:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **Program arguments:** `-server`
  2. Run data probe:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **VM arguments:** `-Dconfig.override_with_env_vars=true`
-    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.nlpcraft.examples.helloworld.HelloWorldModel`
+    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.apache.nlpcraft.examples.helloworld.HelloWorldModel`
     * **Program arguments:** `-probe`
  2. Run test:
-    * **JUnit 5 test:** `org.nlpcraft.examples.helloworld.HelloWorldTest`
+    * **JUnit 5 test:** `org.apache.nlpcraft.examples.helloworld.HelloWorldTest`
     * or use NLPCraft [REST APIs](https://nlpcraft.org/using-rest.html) with your favorite REST client
 
 ### Documentation
@@ -25,7 +25,7 @@ See [Getting Started](https://nlpcraft.org/getting-started.html) guide for more
 
 For any questions, feedback or suggestions:
 
- * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples)
+ * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples)
  * Latest [Javadoc](https://github.com/apache/incubator-nlpcraft/apis/latest/index.html) and [REST APIs](https://nlpcraft.org/using-rest.html)
  * Download & Maven/Grape/Gradle/SBT [instructions](https://nlpcraft.org/download.html)
  * File a bug or improvement in [JIRA](https://issues.apache.org/jira/projects/NLPCRAFT)
diff --git a/src/main/scala/org/nlpcraft/examples/lightswitch/LightSwitchModel.scala b/src/main/scala/org/apache/nlpcraft/examples/lightswitch/LightSwitchModel.scala
similarity index 89%
rename from src/main/scala/org/nlpcraft/examples/lightswitch/LightSwitchModel.scala
rename to src/main/scala/org/apache/nlpcraft/examples/lightswitch/LightSwitchModel.scala
index 14cc3de..df39329 100644
--- a/src/main/scala/org/nlpcraft/examples/lightswitch/LightSwitchModel.scala
+++ b/src/main/scala/org/apache/nlpcraft/examples/lightswitch/LightSwitchModel.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.lightswitch
+package org.apache.nlpcraft.examples.lightswitch
 
-import org.nlpcraft.model._
-import org.nlpcraft.model.NCIntentTerm
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.NCIntentTerm
 
 /**
   * This example provides very simple implementation for NLI-powered light switch.
@@ -32,7 +32,7 @@ import org.nlpcraft.model.NCIntentTerm
   * <p>
   * See 'README.md' file in the same folder for running instructions.
   */
-class LightSwitchModel extends NCModelFileAdapter("org/nlpcraft/examples/lightswitch/lightswitch_model.yaml") {
+class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/lightswitch/lightswitch_model.yaml") {
     /**
       * Intent and its on-match callback.
       *
diff --git a/src/main/scala/org/nlpcraft/examples/lightswitch/LightSwitchTest.java b/src/main/scala/org/apache/nlpcraft/examples/lightswitch/LightSwitchTest.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/examples/lightswitch/LightSwitchTest.java
rename to src/main/scala/org/apache/nlpcraft/examples/lightswitch/LightSwitchTest.java
index dc4a786..a99de80 100644
--- a/src/main/scala/org/nlpcraft/examples/lightswitch/LightSwitchTest.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/lightswitch/LightSwitchTest.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.lightswitch;
+package org.apache.nlpcraft.examples.lightswitch;
 
 import org.junit.jupiter.api.*;
-import org.nlpcraft.common.*;
-import org.nlpcraft.model.tools.test.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.model.tools.test.*;
 import java.io.*;
 
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/src/main/scala/org/nlpcraft/examples/lightswitch/README.md b/src/main/scala/org/apache/nlpcraft/examples/lightswitch/README.md
similarity index 87%
rename from src/main/scala/org/nlpcraft/examples/lightswitch/README.md
rename to src/main/scala/org/apache/nlpcraft/examples/lightswitch/README.md
index b444881..d0d1d78 100644
--- a/src/main/scala/org/nlpcraft/examples/lightswitch/README.md
+++ b/src/main/scala/org/apache/nlpcraft/examples/lightswitch/README.md
@@ -11,15 +11,15 @@ controllers.
 ### Running
 You can run this example from command line or IDE in a similar way:
  1. Run REST server:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **Program arguments:** `-server`
  2. Run data probe:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **VM arguments:** `-Dconfig.override_with_env_vars=true`
-    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.nlpcraft.examples.lightswitch.LightSwitchModel`
+    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.apache.nlpcraft.examples.lightswitch.LightSwitchModel`
     * **Program arguments:** `-probe`
  2. Run test:
-    * **JUnit 5 test:** `org.nlpcraft.examples.lightswitch.LightSwitchTest`
+    * **JUnit 5 test:** `org.apache.nlpcraft.examples.lightswitch.LightSwitchTest`
     * or use NLPCraft [REST APIs](https://nlpcraft.org/using-rest.html) with your favorite REST client
 
 ### Blog
@@ -29,7 +29,7 @@ See [Getting Started](https://nlpcraft.org/getting-started.html) guide for more
 
 For any questions, feedback or suggestions:
 
- * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples)
+ * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples)
  * Latest [Javadoc](https://github.com/apache/incubator-nlpcraft/apis/latest/index.html) and [REST APIs](https://nlpcraft.org/using-rest.html)
  * Download & Maven/Grape/Gradle/SBT [instructions](https://nlpcraft.org/download.html)
  * File a bug or improvement in [JIRA](https://issues.apache.org/jira/projects/NLPCRAFT)
diff --git a/src/main/scala/org/nlpcraft/examples/lightswitch/lightswitch_model.yaml b/src/main/scala/org/apache/nlpcraft/examples/lightswitch/lightswitch_model.yaml
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/lightswitch/lightswitch_model.yaml
rename to src/main/scala/org/apache/nlpcraft/examples/lightswitch/lightswitch_model.yaml
diff --git a/src/main/scala/org/nlpcraft/examples/misc/darksky/DarkSkyException.java b/src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyException.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/examples/misc/darksky/DarkSkyException.java
rename to src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyException.java
index ba87ba4..69c6a2d 100644
--- a/src/main/scala/org/nlpcraft/examples/misc/darksky/DarkSkyException.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.misc.darksky;
+package org.apache.nlpcraft.examples.misc.darksky;
 
 /**
  * DarkSkyException exception.
diff --git a/src/main/scala/org/nlpcraft/examples/misc/darksky/DarkSkyService.java b/src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyService.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/examples/misc/darksky/DarkSkyService.java
rename to src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyService.java
index 3459b38..1743029 100644
--- a/src/main/scala/org/nlpcraft/examples/misc/darksky/DarkSkyService.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.misc.darksky;
+package org.apache.nlpcraft.examples.misc.darksky;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
diff --git a/src/main/scala/org/nlpcraft/examples/misc/geo/cities/CitiesDataProvider.java b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/CitiesDataProvider.java
similarity index 92%
rename from src/main/scala/org/nlpcraft/examples/misc/geo/cities/CitiesDataProvider.java
rename to src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/CitiesDataProvider.java
index 63985af..94ab352 100644
--- a/src/main/scala/org/nlpcraft/examples/misc/geo/cities/CitiesDataProvider.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/CitiesDataProvider.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.misc.geo.cities;
+package org.apache.nlpcraft.examples.misc.geo.cities;
 
 import org.apache.commons.lang3.tuple.Pair;
-import org.nlpcraft.common.NCException;
+import org.apache.nlpcraft.common.NCException;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -48,7 +48,7 @@ public class CitiesDataProvider {
                      Objects.requireNonNull(
                         CitiesDataProvider.class.
                         getClassLoader().
-                        getResourceAsStream("org/nlpcraft/examples/misc/geo/cities/cities_timezones.txt"))
+                        getResourceAsStream("org/apache/nlpcraft/examples/misc/geo/cities/cities_timezones.txt"))
                 ))) {
                 String line = reader.readLine();
                 
diff --git a/src/main/scala/org/nlpcraft/examples/misc/geo/cities/City.java b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/City.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/examples/misc/geo/cities/City.java
rename to src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/City.java
index f1d5eed..8f2ee0c 100644
--- a/src/main/scala/org/nlpcraft/examples/misc/geo/cities/City.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/City.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.misc.geo.cities;
+package org.apache.nlpcraft.examples.misc.geo.cities;
 
 import java.util.Objects;
 
diff --git a/src/main/scala/org/nlpcraft/examples/misc/geo/cities/CityData.java b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/CityData.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/examples/misc/geo/cities/CityData.java
rename to src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/CityData.java
index 0c1736b..0760c37 100644
--- a/src/main/scala/org/nlpcraft/examples/misc/geo/cities/CityData.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/CityData.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.misc.geo.cities;
+package org.apache.nlpcraft.examples.misc.geo.cities;
 
 /**
  * City data holder.
diff --git a/src/main/scala/org/nlpcraft/examples/misc/geo/cities/cities_timezones.txt b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/cities_timezones.txt
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/misc/geo/cities/cities_timezones.txt
rename to src/main/scala/org/apache/nlpcraft/examples/misc/geo/cities/cities_timezones.txt
diff --git a/src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/GeoManager.java b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/GeoManager.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/GeoManager.java
rename to src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/GeoManager.java
index 2a6a259..a390a82 100644
--- a/src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/GeoManager.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/GeoManager.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.misc.geo.keycdn;
+package org.apache.nlpcraft.examples.misc.geo.keycdn;
 
 import com.google.gson.Gson;
-import org.nlpcraft.examples.misc.geo.keycdn.beans.GeoDataBean;
-import org.nlpcraft.examples.misc.geo.keycdn.beans.ResponseBean;
-import org.nlpcraft.model.NCRequest;
+import org.apache.nlpcraft.examples.misc.geo.keycdn.beans.GeoDataBean;
+import org.apache.nlpcraft.examples.misc.geo.keycdn.beans.ResponseBean;
+import org.apache.nlpcraft.model.NCRequest;
 
 import java.io.BufferedReader;
 import java.io.IOException;
diff --git a/src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/beans/GeoDataBean.java b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/beans/GeoDataBean.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/beans/GeoDataBean.java
rename to src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/beans/GeoDataBean.java
index 3bf6a0e..fb05eef 100644
--- a/src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/beans/GeoDataBean.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/beans/GeoDataBean.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.misc.geo.keycdn.beans;
+package org.apache.nlpcraft.examples.misc.geo.keycdn.beans;
 
 import com.google.gson.annotations.SerializedName;
 
diff --git a/src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/beans/ResponseBean.java b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/beans/ResponseBean.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/beans/ResponseBean.java
rename to src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/beans/ResponseBean.java
index 7ae1080..80ffaab 100644
--- a/src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/beans/ResponseBean.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/beans/ResponseBean.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.misc.geo.keycdn.beans;
+package org.apache.nlpcraft.examples.misc.geo.keycdn.beans;
 
 /**
  * Service https://tools.keycdn.com/geo response part bean.
diff --git a/src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/beans/ResponseDataBean.java b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/beans/ResponseDataBean.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/beans/ResponseDataBean.java
rename to src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/beans/ResponseDataBean.java
index 519b1fe..2f6596f 100644
--- a/src/main/scala/org/nlpcraft/examples/misc/geo/keycdn/beans/ResponseDataBean.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/misc/geo/keycdn/beans/ResponseDataBean.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.misc.geo.keycdn.beans;
+package org.apache.nlpcraft.examples.misc.geo.keycdn.beans;
 
 /**
  * Service https://tools.keycdn.com/geo response bean.
diff --git a/src/main/scala/org/nlpcraft/examples/phone/PhoneModel.java b/src/main/scala/org/apache/nlpcraft/examples/phone/PhoneModel.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/examples/phone/PhoneModel.java
rename to src/main/scala/org/apache/nlpcraft/examples/phone/PhoneModel.java
index 20273fe..64c35e8 100644
--- a/src/main/scala/org/nlpcraft/examples/phone/PhoneModel.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/phone/PhoneModel.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.phone;
+package org.apache.nlpcraft.examples.phone;
 
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.model.*;
 import java.util.*;
 import java.util.stream.*;
 
@@ -41,7 +41,7 @@ public class PhoneModel extends NCModelFileAdapter {
      */
     public PhoneModel() {
         // Load model from JSON file on the classpath.
-        super("org/nlpcraft/examples/phone/phone_model.json");
+        super("org/apache/nlpcraft/examples/phone/phone_model.json");
     }
 
     /**
diff --git a/src/main/scala/org/nlpcraft/examples/phone/PhoneTest.java b/src/main/scala/org/apache/nlpcraft/examples/phone/PhoneTest.java
similarity index 89%
rename from src/main/scala/org/nlpcraft/examples/phone/PhoneTest.java
rename to src/main/scala/org/apache/nlpcraft/examples/phone/PhoneTest.java
index 71e50b6..8170c5f 100644
--- a/src/main/scala/org/nlpcraft/examples/phone/PhoneTest.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/phone/PhoneTest.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.phone;
+package org.apache.nlpcraft.examples.phone;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.model.tools.test.NCTestClient;
-import org.nlpcraft.model.tools.test.NCTestClientBuilder;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.model.tools.test.NCTestClient;
+import org.apache.nlpcraft.model.tools.test.NCTestClientBuilder;
 
 import java.io.IOException;
 
diff --git a/src/main/scala/org/nlpcraft/examples/phone/README.md b/src/main/scala/org/apache/nlpcraft/examples/phone/README.md
similarity index 88%
rename from src/main/scala/org/nlpcraft/examples/phone/README.md
rename to src/main/scala/org/apache/nlpcraft/examples/phone/README.md
index e84bde7..3a195a2 100644
--- a/src/main/scala/org/nlpcraft/examples/phone/README.md
+++ b/src/main/scala/org/apache/nlpcraft/examples/phone/README.md
@@ -10,19 +10,19 @@ can easily add access to the a contact database and issue the call via many exis
 ### Running
 You can run this example from command line or IDE in a similar way:
  1. Run REST server:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **VM arguments:** `-Dconfig.override_with_env_vars=true`
     * **Environment variables:** 
       * `CONFIG_FORCE_nlpcraft_server_tokenProviders.0=nlpcraft`
       * `CONFIG_FORCE_nlpcraft_server_tokenProviders.1=google`
     * **Program arguments:** `-server`
  2. Run data probe:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **VM arguments:** `-Dconfig.override_with_env_vars=true`
-    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.nlpcraft.examples.phone.PhoneModel`
+    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.apache.nlpcraft.examples.phone.PhoneModel`
     * **Program arguments:** `-probe`
  2. Run test:
-    * **JUnit 5 test:** `org.nlpcraft.examples.phone.PhoneTest`
+    * **JUnit 5 test:** `org.apache.nlpcraft.examples.phone.PhoneTest`
     * or use NLPCraft [REST APIs](https://nlpcraft.org/using-rest.html) with your favorite REST client
 
 ### Documentation  
@@ -31,7 +31,7 @@ See also [Integrations](https://nlpcraft.org/intergrations.html) section on how
 
 For any questions, feedback or suggestions:
 
- * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples)
+ * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples)
  * Latest [Javadoc](https://github.com/apache/incubator-nlpcraft/apis/latest/index.html) and [REST APIs](https://nlpcraft.org/using-rest.html)
  * Download & Maven/Grape/Gradle/SBT [instructions](https://nlpcraft.org/download.html)
  * File a bug or improvement in [JIRA](https://issues.apache.org/jira/projects/NLPCRAFT)
diff --git a/src/main/scala/org/nlpcraft/examples/phone/phone_model.json b/src/main/scala/org/apache/nlpcraft/examples/phone/phone_model.json
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/phone/phone_model.json
rename to src/main/scala/org/apache/nlpcraft/examples/phone/phone_model.json
diff --git a/src/main/scala/org/nlpcraft/examples/sql/SqlModel.scala b/src/main/scala/org/apache/nlpcraft/examples/sql/SqlModel.scala
similarity index 94%
rename from src/main/scala/org/nlpcraft/examples/sql/SqlModel.scala
rename to src/main/scala/org/apache/nlpcraft/examples/sql/SqlModel.scala
index 519da3c..23effdc 100644
--- a/src/main/scala/org/nlpcraft/examples/sql/SqlModel.scala
+++ b/src/main/scala/org/apache/nlpcraft/examples/sql/SqlModel.scala
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.sql
+package org.apache.nlpcraft.examples.sql
 
 import com.google.gson.Gson
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.examples.sql.db._
-import org.nlpcraft.model._
-import org.nlpcraft.model.tools.sqlgen.NCSqlUtils._
-import org.nlpcraft.model.tools.sqlgen._
+import org.apache.nlpcraft.examples.sql.db._
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.tools.sqlgen.NCSqlUtils._
+import org.apache.nlpcraft.model.tools.sqlgen._
 
 import scala.collection.JavaConverters._
 import scala.language.implicitConversions
 
-class SqlModel extends NCModelFileAdapter("org/nlpcraft/examples/sql/sql_model.yaml") with LazyLogging {
+class SqlModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/sql/sql_model.yaml") with LazyLogging {
     private final val GSON = new Gson()
     private final val SCHEMA = NCSqlSchemaBuilder.makeSchema(this)
 
diff --git a/src/main/scala/org/nlpcraft/examples/sql/SqlModelTest.scala b/src/main/scala/org/apache/nlpcraft/examples/sql/SqlModelTest.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/examples/sql/SqlModelTest.scala
rename to src/main/scala/org/apache/nlpcraft/examples/sql/SqlModelTest.scala
index b8a14ea..558a344 100644
--- a/src/main/scala/org/nlpcraft/examples/sql/SqlModelTest.scala
+++ b/src/main/scala/org/apache/nlpcraft/examples/sql/SqlModelTest.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.sql
+package org.apache.nlpcraft.examples.sql
 
 import java.util
 import java.util.function.Function
@@ -25,8 +25,8 @@ import com.github.vertical_blank.sqlformatter.SqlFormatter
 import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
 import com.jakewharton.fliptables.FlipTable
-import org.nlpcraft.model.tools.sqlgen.NCSqlException
-import org.nlpcraft.model.tools.test.{NCTestClient, NCTestClientBuilder}
+import org.apache.nlpcraft.model.tools.sqlgen.NCSqlException
+import org.apache.nlpcraft.model.tools.test.{NCTestClient, NCTestClientBuilder}
 import org.scalatest.{BeforeAndAfterAll, FlatSpec}
 
 import scala.collection.JavaConverters._
diff --git a/src/main/scala/org/nlpcraft/examples/sql/db/SqlAccess.scala b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlAccess.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/examples/sql/db/SqlAccess.scala
rename to src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlAccess.scala
index 92c6195..ef2d0be 100644
--- a/src/main/scala/org/nlpcraft/examples/sql/db/SqlAccess.scala
+++ b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlAccess.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.sql.db
+package org.apache.nlpcraft.examples.sql.db
 
 import java.sql.{Connection, SQLException}
 
@@ -23,7 +23,7 @@ import com.github.vertical_blank.sqlformatter.SqlFormatter
 import com.jakewharton.fliptables.FlipTable
 import com.typesafe.scalalogging.LazyLogging
 import org.h2.jdbcx.JdbcDataSource
-import org.nlpcraft.model.tools.sqlgen.NCSqlQuery
+import org.apache.nlpcraft.model.tools.sqlgen.NCSqlQuery
 import resource.managed
 
 import scala.collection.JavaConverters._
diff --git a/src/main/scala/org/nlpcraft/examples/sql/db/SqlBuilder.scala b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlBuilder.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/examples/sql/db/SqlBuilder.scala
rename to src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlBuilder.scala
index ea76009..f9435f4 100644
--- a/src/main/scala/org/nlpcraft/examples/sql/db/SqlBuilder.scala
+++ b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlBuilder.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.sql.db
+package org.apache.nlpcraft.examples.sql.db
 
 import java.sql.Types
 import java.util
@@ -23,8 +23,8 @@ import java.util
 import com.typesafe.scalalogging.LazyLogging
 import org.jgrapht.alg.DijkstraShortestPath
 import org.jgrapht.graph.{DefaultEdge, SimpleGraph}
-import org.nlpcraft.model.tools.sqlgen.{NCSqlAggregate, _}
-import org.nlpcraft.model.tools.sqlgen.impl.{NCSqlFunctionImpl, NCSqlSortImpl}
+import org.apache.nlpcraft.model.tools.sqlgen.{NCSqlAggregate, _}
+import org.apache.nlpcraft.model.tools.sqlgen.impl.{NCSqlFunctionImpl, NCSqlSortImpl}
 
 import scala.collection.JavaConverters._
 import scala.collection.{Seq, mutable}
@@ -206,7 +206,7 @@ case class SqlBuilder(schema: NCSqlSchema) extends LazyLogging {
                 case Some(col) ⇒
                     val range = freeDateRangeOpt.getOrElse(throw new AssertionError("Missed date range"))
 
-                    import org.nlpcraft.model.tools.sqlgen.impl.{NCSqlSimpleConditionImpl => C}
+                    import org.apache.nlpcraft.model.tools.sqlgen.impl.{NCSqlSimpleConditionImpl => C}
 
                     (Seq(C(col, ">=", range.getFrom), C(col, "<=", range.getTo)), Seq(range.getFrom, range.getTo))
                 case None ⇒ (Seq.empty, Seq.empty)
diff --git a/src/main/scala/org/nlpcraft/examples/sql/db/SqlResult.scala b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlResult.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/examples/sql/db/SqlResult.scala
rename to src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlResult.scala
index 5cedb82..fcd5d55 100644
--- a/src/main/scala/org/nlpcraft/examples/sql/db/SqlResult.scala
+++ b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlResult.scala
@@ -15,6 +15,6 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.sql.db
+package org.apache.nlpcraft.examples.sql.db
 
 case class SqlResult(columns: Seq[String], rows: Seq[Seq[String]])
diff --git a/src/main/scala/org/nlpcraft/examples/sql/db/SqlServer.scala b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlServer.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/examples/sql/db/SqlServer.scala
rename to src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlServer.scala
index ed51044..3af50c2 100644
--- a/src/main/scala/org/nlpcraft/examples/sql/db/SqlServer.scala
+++ b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlServer.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.sql.db
+package org.apache.nlpcraft.examples.sql.db
 
 import java.io.File
 import java.sql.SQLException
@@ -48,7 +48,7 @@ object SqlServer extends App with LazyLogging {
         "-tcpPort", H2_PORT.toString,
         "-tcpAllowOthers"
     )
-    private final val INIT_FILE = "src/main/scala/org/nlpcraft/examples/sql/db/northwind.sql"
+    private final val INIT_FILE = "src/main/scala/org/apache/nlpcraft/examples/sql/db/northwind.sql"
 
     lazy final val H2_URL: String = s"jdbc:h2:tcp://localhost:$H2_PORT/nlp2sql"
 
diff --git a/src/main/scala/org/nlpcraft/examples/sql/db/SqlValueLoader.scala b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlValueLoader.scala
similarity index 94%
rename from src/main/scala/org/nlpcraft/examples/sql/db/SqlValueLoader.scala
rename to src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlValueLoader.scala
index 86c5bc4..88b0b26 100644
--- a/src/main/scala/org/nlpcraft/examples/sql/db/SqlValueLoader.scala
+++ b/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlValueLoader.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.sql.db
+package org.apache.nlpcraft.examples.sql.db
 
 import java.util
 import java.util.Collections
 
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.model._
-import org.nlpcraft.model.tools.sqlgen.NCSqlQuery
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.tools.sqlgen.NCSqlQuery
 
 import scala.collection.JavaConverters._
 import scala.language.implicitConversions
diff --git a/src/main/scala/org/nlpcraft/examples/sql/db/model.png b/src/main/scala/org/apache/nlpcraft/examples/sql/db/model.png
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/sql/db/model.png
rename to src/main/scala/org/apache/nlpcraft/examples/sql/db/model.png
diff --git a/src/main/scala/org/nlpcraft/examples/sql/db/northwind.sql b/src/main/scala/org/apache/nlpcraft/examples/sql/db/northwind.sql
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/sql/db/northwind.sql
rename to src/main/scala/org/apache/nlpcraft/examples/sql/db/northwind.sql
diff --git a/src/main/scala/org/nlpcraft/examples/sql/db/sample_questions.txt b/src/main/scala/org/apache/nlpcraft/examples/sql/db/sample_questions.txt
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/sql/db/sample_questions.txt
rename to src/main/scala/org/apache/nlpcraft/examples/sql/db/sample_questions.txt
diff --git a/src/main/scala/org/nlpcraft/examples/sql/sql_model.yaml b/src/main/scala/org/apache/nlpcraft/examples/sql/sql_model.yaml
similarity index 94%
rename from src/main/scala/org/nlpcraft/examples/sql/sql_model.yaml
rename to src/main/scala/org/apache/nlpcraft/examples/sql/sql_model.yaml
index 337adee..f5bf06c 100644
--- a/src/main/scala/org/nlpcraft/examples/sql/sql_model.yaml
+++ b/src/main/scala/org/apache/nlpcraft/examples/sql/sql_model.yaml
@@ -66,7 +66,7 @@ metadata:
     totable: "territories"
     tocolumns:
     - "territory_id"
-  sql:output: "src/main/scala/org/nlpcraft/examples/nlp2sql/nlp2sql_model.json"
+  sql:output: "src/main/scala/org/apache/nlpcraft/examples/nlp2sql/nlp2sql_model.json"
   sql:timestamp: "2020-01-22T09:13:42.716Z"
   sql:schema: "PUBLIC"
 macros:
@@ -277,7 +277,7 @@ elements:
     sql:isnullable: false
     sql:ispk: false
   description: "Auto-generated from 'region.region_description' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:orders_order_id"
   groups:
   - "column"
@@ -306,7 +306,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'orders.customer_id' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:orders_employee_id"
   groups:
   - "column"
@@ -405,7 +405,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'orders.ship_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:orders_ship_address"
   groups:
   - "column"
@@ -434,7 +434,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'orders.ship_city' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:orders_ship_region"
   groups:
   - "column"
@@ -449,7 +449,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'orders.ship_region' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:orders_ship_postal_code"
   groups:
   - "column"
@@ -478,7 +478,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'orders.ship_country' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:suppliers_supplier_id"
   groups:
   - "column"
@@ -507,7 +507,7 @@ elements:
     sql:isnullable: false
     sql:ispk: false
   description: "Auto-generated from 'suppliers.company_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:suppliers_contact_name"
   groups:
   - "column"
@@ -522,7 +522,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'suppliers.contact_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:suppliers_contact_title"
   groups:
   - "column"
@@ -537,7 +537,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'suppliers.contact_title' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:suppliers_address"
   groups:
   - "column"
@@ -566,7 +566,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'suppliers.city' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:suppliers_region"
   groups:
   - "column"
@@ -581,7 +581,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'suppliers.region' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:suppliers_postal_code"
   groups:
   - "column"
@@ -610,7 +610,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'suppliers.country' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:suppliers_phone"
   groups:
   - "column"
@@ -737,7 +737,7 @@ elements:
     sql:isnullable: false
     sql:ispk: true
   description: "Auto-generated from 'territories.territory_id' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:territories_territory_description"
   groups:
   - "column"
@@ -752,7 +752,7 @@ elements:
     sql:isnullable: false
     sql:ispk: false
   description: "Auto-generated from 'territories.territory_description' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:territories_region_id"
   groups:
   - "column"
@@ -795,7 +795,7 @@ elements:
     sql:isnullable: false
     sql:ispk: false
   description: "Auto-generated from 'shippers.company_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:shippers_phone"
   groups:
   - "column"
@@ -838,7 +838,7 @@ elements:
     sql:isnullable: false
     sql:ispk: false
   description: "Auto-generated from 'products.product_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:products_supplier_id"
   groups:
   - "column"
@@ -881,7 +881,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'products.quantity_per_unit' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:products_unit_price"
   groups:
   - "column"
@@ -994,7 +994,7 @@ elements:
     sql:isnullable: false
     sql:ispk: true
   description: "Auto-generated from 'customers.customer_id' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:customers_company_name"
   groups:
   - "column"
@@ -1009,7 +1009,7 @@ elements:
     sql:isnullable: false
     sql:ispk: false
   description: "Auto-generated from 'customers.company_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:customers_contact_name"
   groups:
   - "column"
@@ -1024,7 +1024,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'customers.contact_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:customers_contact_title"
   groups:
   - "column"
@@ -1067,7 +1067,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'customers.city' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:customers_region"
   groups:
   - "column"
@@ -1082,7 +1082,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'customers.region' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:customers_postal_code"
   groups:
   - "column"
@@ -1111,7 +1111,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'customers.country' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:customers_phone"
   groups:
   - "column"
@@ -1168,7 +1168,7 @@ elements:
     sql:isnullable: false
     sql:ispk: false
   description: "Auto-generated from 'categories.category_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:categories_description"
   groups:
   - "column"
@@ -1211,7 +1211,7 @@ elements:
     sql:isnullable: false
     sql:ispk: false
   description: "Auto-generated from 'employees.last_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:employees_first_name"
   groups:
   - "column"
@@ -1226,7 +1226,7 @@ elements:
     sql:isnullable: false
     sql:ispk: false
   description: "Auto-generated from 'employees.first_name' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:employees_title"
   groups:
   - "column"
@@ -1241,7 +1241,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'employees.title' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:employees_title_of_courtesy"
   groups:
   - "column"
@@ -1312,7 +1312,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'employees.city' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:employees_region"
   groups:
   - "column"
@@ -1327,7 +1327,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'employees.region' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:employees_postal_code"
   groups:
   - "column"
@@ -1356,7 +1356,7 @@ elements:
     sql:isnullable: true
     sql:ispk: false
   description: "Auto-generated from 'employees.country' column."
-  valueLoader: "org.nlpcraft.examples.sql.db.SqlValueLoader"
+  valueLoader: "org.apache.nlpcraft.examples.sql.db.SqlValueLoader"
 - id: "col:employees_home_phone"
   groups:
   - "column"
diff --git a/src/main/scala/org/nlpcraft/examples/time/README.md b/src/main/scala/org/apache/nlpcraft/examples/time/README.md
similarity index 86%
rename from src/main/scala/org/nlpcraft/examples/time/README.md
rename to src/main/scala/org/apache/nlpcraft/examples/time/README.md
index 03da238..ed2b4da 100644
--- a/src/main/scala/org/nlpcraft/examples/time/README.md
+++ b/src/main/scala/org/apache/nlpcraft/examples/time/README.md
@@ -9,15 +9,15 @@ It provides YAML response with time and timezone information and uses YAML model
 ### Running
 You can run this example from command line or IDE in a similar way:
  1. Run REST server:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **Program arguments:** `-server`
  2. Run data probe:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **VM arguments:** `-Dconfig.override_with_env_vars=true`
-    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.nlpcraft.examples.time.TimeModel`
+    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.apache.nlpcraft.examples.time.TimeModel`
     * **Program arguments:** `-probe`
  2. Run test:
-    * **JUnit 5 test:** `org.nlpcraft.examples.time.TimeTest`
+    * **JUnit 5 test:** `org.apache.nlpcraft.examples.time.TimeTest`
     * or use NLPCraft [REST APIs](https://nlpcraft.org/using-rest.html) with your favorite REST client
 
 ### Documentation  
@@ -25,7 +25,7 @@ See [Getting Started](https://nlpcraft.org/getting-started.html) guide for more
 
 For any questions, feedback or suggestions:
 
- * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples)
+ * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples)
  * Latest [Javadoc](https://github.com/apache/incubator-nlpcraft/apis/latest/index.html) and [REST APIs](https://nlpcraft.org/using-rest.html)
  * Download & Maven/Grape/Gradle/SBT [instructions](https://nlpcraft.org/download.html)
  * File a bug or improvement in [JIRA](https://issues.apache.org/jira/projects/NLPCRAFT)
diff --git a/src/main/scala/org/nlpcraft/examples/time/TimeModel.java b/src/main/scala/org/apache/nlpcraft/examples/time/TimeModel.java
similarity index 88%
rename from src/main/scala/org/nlpcraft/examples/time/TimeModel.java
rename to src/main/scala/org/apache/nlpcraft/examples/time/TimeModel.java
index e6d0c6d..55d4192 100644
--- a/src/main/scala/org/nlpcraft/examples/time/TimeModel.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/time/TimeModel.java
@@ -15,22 +15,22 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.time;
+package org.apache.nlpcraft.examples.time;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
 import org.apache.commons.text.WordUtils;
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.examples.misc.geo.cities.CitiesDataProvider;
-import org.nlpcraft.examples.misc.geo.cities.City;
-import org.nlpcraft.examples.misc.geo.cities.CityData;
-import org.nlpcraft.examples.misc.geo.keycdn.GeoManager;
-import org.nlpcraft.examples.misc.geo.keycdn.beans.GeoDataBean;
-import org.nlpcraft.model.*;
-import org.nlpcraft.model.NCIntent;
-import org.nlpcraft.model.NCIntentMatch;
-import org.nlpcraft.model.NCIntentTerm;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.examples.misc.geo.cities.CitiesDataProvider;
+import org.apache.nlpcraft.examples.misc.geo.cities.City;
+import org.apache.nlpcraft.examples.misc.geo.cities.CityData;
+import org.apache.nlpcraft.examples.misc.geo.keycdn.GeoManager;
+import org.apache.nlpcraft.examples.misc.geo.keycdn.beans.GeoDataBean;
+import org.apache.nlpcraft.model.*;
+import org.apache.nlpcraft.model.NCIntent;
+import org.apache.nlpcraft.model.NCIntentMatch;
+import org.apache.nlpcraft.model.NCIntentTerm;
 
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
@@ -67,7 +67,7 @@ public class TimeModel extends NCModelFileAdapter {
      * @throws NCException If any errors occur.
      */
     public TimeModel() throws NCException {
-        super("org/nlpcraft/examples/time/time_model.yaml");
+        super("org/apache/nlpcraft/examples/time/time_model.yaml");
     }
 
     /**
diff --git a/src/main/scala/org/nlpcraft/examples/time/TimeModelApp.java b/src/main/scala/org/apache/nlpcraft/examples/time/TimeModelApp.java
similarity index 93%
rename from src/main/scala/org/nlpcraft/examples/time/TimeModelApp.java
rename to src/main/scala/org/apache/nlpcraft/examples/time/TimeModelApp.java
index 56e4507..e7f0307 100644
--- a/src/main/scala/org/nlpcraft/examples/time/TimeModelApp.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/time/TimeModelApp.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.time;
+package org.apache.nlpcraft.examples.time;
 
-import org.nlpcraft.probe.embedded.*;
+import org.apache.nlpcraft.probe.embedded.*;
 
 /**
  * An app that demo the usage of embedded probe. This is an alternative way to
diff --git a/src/main/scala/org/nlpcraft/examples/time/TimeTest.java b/src/main/scala/org/apache/nlpcraft/examples/time/TimeTest.java
similarity index 90%
rename from src/main/scala/org/nlpcraft/examples/time/TimeTest.java
rename to src/main/scala/org/apache/nlpcraft/examples/time/TimeTest.java
index 28ea5ee..d2e8b40 100644
--- a/src/main/scala/org/nlpcraft/examples/time/TimeTest.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/time/TimeTest.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.time;
+package org.apache.nlpcraft.examples.time;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.model.tools.test.NCTestClient;
-import org.nlpcraft.model.tools.test.NCTestClientBuilder;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.model.tools.test.NCTestClient;
+import org.apache.nlpcraft.model.tools.test.NCTestClientBuilder;
 
 import java.io.IOException;
 
diff --git a/src/main/scala/org/nlpcraft/examples/time/time_model.yaml b/src/main/scala/org/apache/nlpcraft/examples/time/time_model.yaml
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/time/time_model.yaml
rename to src/main/scala/org/apache/nlpcraft/examples/time/time_model.yaml
diff --git a/src/main/scala/org/nlpcraft/examples/weather/README.md b/src/main/scala/org/apache/nlpcraft/examples/weather/README.md
similarity index 86%
rename from src/main/scala/org/nlpcraft/examples/weather/README.md
rename to src/main/scala/org/apache/nlpcraft/examples/weather/README.md
index f8d4a09..f06ce87 100644
--- a/src/main/scala/org/nlpcraft/examples/weather/README.md
+++ b/src/main/scala/org/apache/nlpcraft/examples/weather/README.md
@@ -10,15 +10,15 @@ weather information.
 ### Running
 You can run this example from command line or IDE in a similar way:
  1. Run REST server:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **Program arguments:** `-server`
  2. Run data probe:
-    * **Main class:** `org.nlpcraft.NCStart`
+    * **Main class:** `org.apache.nlpcraft.NCStart`
     * **VM arguments:** `-Dconfig.override_with_env_vars=true`
-    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.nlpcraft.examples.weather.WeatherModel`
+    * **Environment variables:** `CONFIG_FORCE_nlpcraft_probe_models.0=org.apache.nlpcraft.examples.weather.WeatherModel`
     * **Program arguments:** `-probe`
  2. Run test:
-    * **JUnit 5 test:** `org.nlpcraft.examples.weather.WeatherTest`
+    * **JUnit 5 test:** `org.apache.nlpcraft.examples.weather.WeatherTest`
     * or use NLPCraft [REST APIs](https://nlpcraft.org/using-rest.html) with your favorite REST client
 
 ### Documentation  
@@ -26,7 +26,7 @@ See [Getting Started](https://nlpcraft.org/getting-started.html) guide for more
 
 For any questions, feedback or suggestions:
 
- * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples)
+ * View & run other [examples](https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples)
  * Latest [Javadoc](https://github.com/apache/incubator-nlpcraft/apis/latest/index.html) and [REST APIs](https://nlpcraft.org/using-rest.html)
  * Download & Maven/Grape/Gradle/SBT [instructions](https://nlpcraft.org/download.html)
  * File a bug or improvement in [JIRA](https://issues.apache.org/jira/projects/NLPCRAFT)
diff --git a/src/main/scala/org/nlpcraft/examples/weather/WeatherModel.java b/src/main/scala/org/apache/nlpcraft/examples/weather/WeatherModel.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/examples/weather/WeatherModel.java
rename to src/main/scala/org/apache/nlpcraft/examples/weather/WeatherModel.java
index 3a4cbc6..a410b73 100644
--- a/src/main/scala/org/nlpcraft/examples/weather/WeatherModel.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/weather/WeatherModel.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.weather;
+package org.apache.nlpcraft.examples.weather;
 
 import com.google.gson.Gson;
-import org.nlpcraft.examples.misc.darksky.DarkSkyException;
-import org.nlpcraft.examples.misc.darksky.DarkSkyService;
-import org.nlpcraft.examples.misc.geo.keycdn.GeoManager;
-import org.nlpcraft.examples.misc.geo.keycdn.beans.GeoDataBean;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.examples.misc.darksky.DarkSkyException;
+import org.apache.nlpcraft.examples.misc.darksky.DarkSkyService;
+import org.apache.nlpcraft.examples.misc.geo.keycdn.GeoManager;
+import org.apache.nlpcraft.examples.misc.geo.keycdn.beans.GeoDataBean;
+import org.apache.nlpcraft.model.*;
 
 import java.time.Instant;
 import java.util.*;
@@ -280,6 +280,6 @@ public class WeatherModel extends NCModelFileAdapter {
      */
     public WeatherModel() {
         // Load model from external JSON file on classpath.
-        super("org/nlpcraft/examples/weather/weather_model.json");
+        super("org/apache/nlpcraft/examples/weather/weather_model.json");
     }
 }
diff --git a/src/main/scala/org/nlpcraft/examples/weather/WeatherResultWrapper.java b/src/main/scala/org/apache/nlpcraft/examples/weather/WeatherResultWrapper.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/examples/weather/WeatherResultWrapper.java
rename to src/main/scala/org/apache/nlpcraft/examples/weather/WeatherResultWrapper.java
index 6371806..f02e36d 100644
--- a/src/main/scala/org/nlpcraft/examples/weather/WeatherResultWrapper.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/weather/WeatherResultWrapper.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.weather;
+package org.apache.nlpcraft.examples.weather;
 
 /**
  * Weather result wrapper for JSON formatting.
diff --git a/src/main/scala/org/nlpcraft/examples/weather/WeatherTest.java b/src/main/scala/org/apache/nlpcraft/examples/weather/WeatherTest.java
similarity index 92%
rename from src/main/scala/org/nlpcraft/examples/weather/WeatherTest.java
rename to src/main/scala/org/apache/nlpcraft/examples/weather/WeatherTest.java
index 375bb43..e640c88 100644
--- a/src/main/scala/org/nlpcraft/examples/weather/WeatherTest.java
+++ b/src/main/scala/org/apache/nlpcraft/examples/weather/WeatherTest.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.examples.weather;
+package org.apache.nlpcraft.examples.weather;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.model.tools.test.NCTestClient;
-import org.nlpcraft.model.tools.test.NCTestClientBuilder;
-import org.nlpcraft.model.tools.test.NCTestResult;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.model.tools.test.NCTestClient;
+import org.apache.nlpcraft.model.tools.test.NCTestClientBuilder;
+import org.apache.nlpcraft.model.tools.test.NCTestResult;
 
 import java.io.IOException;
 import java.lang.reflect.Type;
diff --git a/src/main/scala/org/nlpcraft/examples/weather/weather_model.json b/src/main/scala/org/apache/nlpcraft/examples/weather/weather_model.json
similarity index 100%
rename from src/main/scala/org/nlpcraft/examples/weather/weather_model.json
rename to src/main/scala/org/apache/nlpcraft/examples/weather/weather_model.json
diff --git a/src/main/scala/org/nlpcraft/model/NCCompany.java b/src/main/scala/org/apache/nlpcraft/model/NCCompany.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCCompany.java
rename to src/main/scala/org/apache/nlpcraft/model/NCCompany.java
index 7c1ecd9..cdbfaa5 100644
--- a/src/main/scala/org/nlpcraft/model/NCCompany.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCCompany.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 
diff --git a/src/main/scala/org/nlpcraft/model/NCContext.java b/src/main/scala/org/apache/nlpcraft/model/NCContext.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCContext.java
rename to src/main/scala/org/apache/nlpcraft/model/NCContext.java
index 39a2561..98aec95 100644
--- a/src/main/scala/org/nlpcraft/model/NCContext.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCContext.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.io.*;
 import java.util.*;
diff --git a/src/main/scala/org/nlpcraft/model/NCConversation.java b/src/main/scala/org/apache/nlpcraft/model/NCConversation.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/model/NCConversation.java
rename to src/main/scala/org/apache/nlpcraft/model/NCConversation.java
index 04a12db..c76cbcd 100644
--- a/src/main/scala/org/nlpcraft/model/NCConversation.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCConversation.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.List;
 import java.util.function.Predicate;
diff --git a/src/main/scala/org/nlpcraft/model/NCCustomElement.java b/src/main/scala/org/apache/nlpcraft/model/NCCustomElement.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCCustomElement.java
rename to src/main/scala/org/apache/nlpcraft/model/NCCustomElement.java
index 9d3dd5e..36cde3b 100644
--- a/src/main/scala/org/nlpcraft/model/NCCustomElement.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCCustomElement.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 
diff --git a/src/main/scala/org/nlpcraft/model/NCCustomParser.java b/src/main/scala/org/apache/nlpcraft/model/NCCustomParser.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCCustomParser.java
rename to src/main/scala/org/apache/nlpcraft/model/NCCustomParser.java
index 6511bd9..b249368 100644
--- a/src/main/scala/org/nlpcraft/model/NCCustomParser.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCCustomParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 
diff --git a/src/main/scala/org/nlpcraft/model/NCCustomWord.java b/src/main/scala/org/apache/nlpcraft/model/NCCustomWord.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/model/NCCustomWord.java
rename to src/main/scala/org/apache/nlpcraft/model/NCCustomWord.java
index e1a98b9..3e6b3b1 100644
--- a/src/main/scala/org/nlpcraft/model/NCCustomWord.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCCustomWord.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 /**
  * A partially enriched token with a basic set of NLP properties used by custom NER parser.
diff --git a/src/main/scala/org/nlpcraft/model/NCElement.java b/src/main/scala/org/apache/nlpcraft/model/NCElement.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCElement.java
rename to src/main/scala/org/apache/nlpcraft/model/NCElement.java
index f63132c..d853ea5 100644
--- a/src/main/scala/org/nlpcraft/model/NCElement.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCElement.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.io.*;
 import java.util.*;
@@ -29,7 +29,7 @@ import java.util.*;
  * Such object can be abstract or have a physical existence.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/data-model.html">Data Model</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCCustomParser
  */
@@ -257,7 +257,7 @@ public interface NCElement extends NCMetadata, Serializable {
     /**
      * Gets the list of synonyms by which this semantic element will be recognized by. Read more about
      * many different forms of synonyms in <a target=_ href="https://nlpcraft.org/data-model.html">Data Model</a> section
-     * and review <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+     * and review <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
      * <p>
      * <b>JSON</b>
      * <br>
diff --git a/src/main/scala/org/nlpcraft/model/NCIntent.java b/src/main/scala/org/apache/nlpcraft/model/NCIntent.java
similarity index 93%
rename from src/main/scala/org/nlpcraft/model/NCIntent.java
rename to src/main/scala/org/apache/nlpcraft/model/NCIntent.java
index aca7595..cf32a45 100644
--- a/src/main/scala/org/nlpcraft/model/NCIntent.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCIntent.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.lang.annotation.*;
 
@@ -27,7 +27,7 @@ import static java.lang.annotation.RetentionPolicy.*;
  * that defines an intent via intent DSL.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/intent-matching.html">Intent Matching</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCIntentRef
  * @see NCIntentTerm
diff --git a/src/main/scala/org/nlpcraft/model/NCIntentMatch.java b/src/main/scala/org/apache/nlpcraft/model/NCIntentMatch.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/NCIntentMatch.java
rename to src/main/scala/org/apache/nlpcraft/model/NCIntentMatch.java
index 9cfa142..2cb1299 100644
--- a/src/main/scala/org/nlpcraft/model/NCIntentMatch.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCIntentMatch.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.io.*;
 import java.util.*;
@@ -27,7 +27,7 @@ import java.util.*;
  * If used, intent context must be the 1st formal parameter in intent callback.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/intent-matching.html">Intent Matching</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCIntent
  * @see NCIntentTerm
diff --git a/src/main/scala/org/nlpcraft/model/NCIntentRef.java b/src/main/scala/org/apache/nlpcraft/model/NCIntentRef.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/NCIntentRef.java
rename to src/main/scala/org/apache/nlpcraft/model/NCIntentRef.java
index d252617..1bd7aab 100644
--- a/src/main/scala/org/nlpcraft/model/NCIntentRef.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCIntentRef.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.Retention;
@@ -28,7 +28,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
  * Annotations referencing an intent defined externally in JSON or YAML model declaration.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/intent-matching.html">Intent Matching</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCIntent
  * @see NCIntentTerm
diff --git a/src/main/scala/org/nlpcraft/model/NCIntentSkip.java b/src/main/scala/org/apache/nlpcraft/model/NCIntentSkip.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/NCIntentSkip.java
rename to src/main/scala/org/apache/nlpcraft/model/NCIntentSkip.java
index fdd7435..df204f8 100644
--- a/src/main/scala/org/nlpcraft/model/NCIntentSkip.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCIntentSkip.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 /**
  * Control flow exception to skip current intent. This exception can be thrown by the intent
@@ -29,7 +29,7 @@ package org.nlpcraft.model;
  * not match then throwing this exception allows to try next best matching intent, if any.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/intent-matching.html">Intent Matching</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCIntent
  * @see NCIntentTerm
diff --git a/src/main/scala/org/nlpcraft/model/NCIntentTerm.java b/src/main/scala/org/apache/nlpcraft/model/NCIntentTerm.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/NCIntentTerm.java
rename to src/main/scala/org/apache/nlpcraft/model/NCIntentTerm.java
index 6083477..ee69522 100644
--- a/src/main/scala/org/nlpcraft/model/NCIntentTerm.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCIntentTerm.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.lang.annotation.*;
 
@@ -31,7 +31,7 @@ import static java.lang.annotation.RetentionPolicy.*;
  * callback was invoked).
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/intent-matching.html">Intent Matching</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCIntent
  * @see NCIntentRef
diff --git a/src/main/scala/org/nlpcraft/model/NCLifecycle.java b/src/main/scala/org/apache/nlpcraft/model/NCLifecycle.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCLifecycle.java
rename to src/main/scala/org/apache/nlpcraft/model/NCLifecycle.java
index 762b932..3262dac 100644
--- a/src/main/scala/org/nlpcraft/model/NCLifecycle.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCLifecycle.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 /**
  * NLPCraft lifecycle component.
diff --git a/src/main/scala/org/nlpcraft/model/NCMetadata.java b/src/main/scala/org/apache/nlpcraft/model/NCMetadata.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/NCMetadata.java
rename to src/main/scala/org/apache/nlpcraft/model/NCMetadata.java
index 59d89c2..bacf730 100644
--- a/src/main/scala/org/nlpcraft/model/NCMetadata.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCMetadata.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 
@@ -23,7 +23,7 @@ import java.util.*;
  * Provides support for map-based metadata.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/data-model.html">Data Model</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  */
 public interface NCMetadata {
     /**
diff --git a/src/main/scala/org/nlpcraft/model/NCModel.java b/src/main/scala/org/apache/nlpcraft/model/NCModel.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCModel.java
rename to src/main/scala/org/apache/nlpcraft/model/NCModel.java
index 434b6d5..9fbda7b 100644
--- a/src/main/scala/org/nlpcraft/model/NCModel.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCModel.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 /**
  * User-defined semantic data model.
@@ -38,7 +38,7 @@ package org.nlpcraft.model;
  * your data models - your entire model and all of its components are part of your project's source code.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/data-model.html">Data Model</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCModelAdapter
  * @see NCModelFileAdapter
diff --git a/src/main/scala/org/nlpcraft/model/NCModelAdapter.java b/src/main/scala/org/apache/nlpcraft/model/NCModelAdapter.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/NCModelAdapter.java
rename to src/main/scala/org/apache/nlpcraft/model/NCModelAdapter.java
index bbe61a1..5fa0563 100644
--- a/src/main/scala/org/nlpcraft/model/NCModelAdapter.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCModelAdapter.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 /**
  * Adapter for data models. In most cases new data models should extend either this adapter or
  * {@link NCModelFileAdapter}.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/data-model.html">Data Model</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCModelFileAdapter
  */
diff --git a/src/main/scala/org/nlpcraft/model/NCModelFactory.java b/src/main/scala/org/apache/nlpcraft/model/NCModelFactory.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/NCModelFactory.java
rename to src/main/scala/org/apache/nlpcraft/model/NCModelFactory.java
index 2feee97..0d07aa5 100644
--- a/src/main/scala/org/nlpcraft/model/NCModelFactory.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCModelFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 
@@ -25,7 +25,7 @@ import java.util.*;
  * data model externally, e.g. <a target=_ href="https://spring.io/">Spring</a>-based factory and configuration.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/data-model.html">Data Model</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  */
 public interface NCModelFactory {
     /**
diff --git a/src/main/scala/org/nlpcraft/model/NCModelFileAdapter.java b/src/main/scala/org/apache/nlpcraft/model/NCModelFileAdapter.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCModelFileAdapter.java
rename to src/main/scala/org/apache/nlpcraft/model/NCModelFileAdapter.java
index cf8dfdd..ee3c340 100644
--- a/src/main/scala/org/nlpcraft/model/NCModelFileAdapter.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCModelFileAdapter.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import com.fasterxml.jackson.databind.*;
 import com.fasterxml.jackson.dataformat.yaml.*;
 import com.google.gson.*;
-import org.nlpcraft.common.*;
-import org.nlpcraft.common.util.*;
-import org.nlpcraft.model.impl.json.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.common.util.*;
+import org.apache.nlpcraft.model.impl.json.*;
 import java.io.*;
 import java.net.*;
 import java.util.*;
@@ -37,7 +37,7 @@ import java.util.stream.*;
  * constructors and those modifications will alter the model's configuration.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/data-model.html">Data Model</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCModelAdapter
  */
diff --git a/src/main/scala/org/nlpcraft/model/NCModelView.java b/src/main/scala/org/apache/nlpcraft/model/NCModelView.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/model/NCModelView.java
rename to src/main/scala/org/apache/nlpcraft/model/NCModelView.java
index 6ca3c90..72320df 100644
--- a/src/main/scala/org/nlpcraft/model/NCModelView.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCModelView.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 
@@ -25,7 +25,7 @@ import java.util.*;
  * presentation when used with {@link NCModelFileAdapter} adapter.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/data-model.html">Data Model</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCModel
  * @see NCModelAdapter
diff --git a/src/main/scala/org/nlpcraft/model/NCRejection.java b/src/main/scala/org/apache/nlpcraft/model/NCRejection.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCRejection.java
rename to src/main/scala/org/apache/nlpcraft/model/NCRejection.java
index bae0bfa..31cbd9b 100644
--- a/src/main/scala/org/nlpcraft/model/NCRejection.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCRejection.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 /**
  * Exception to indicate that user input cannot be processed as is. This exception can be thrown from
diff --git a/src/main/scala/org/nlpcraft/model/NCRequest.java b/src/main/scala/org/apache/nlpcraft/model/NCRequest.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCRequest.java
rename to src/main/scala/org/apache/nlpcraft/model/NCRequest.java
index 3b7139e..5082343 100644
--- a/src/main/scala/org/nlpcraft/model/NCRequest.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCRequest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 
diff --git a/src/main/scala/org/nlpcraft/model/NCResult.java b/src/main/scala/org/apache/nlpcraft/model/NCResult.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCResult.java
rename to src/main/scala/org/apache/nlpcraft/model/NCResult.java
index aa3077e..cc2d844 100644
--- a/src/main/scala/org/nlpcraft/model/NCResult.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCResult.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.common.util.NCUtils;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.common.util.NCUtils;
 
 import java.io.Serializable;
 import java.util.Collection;
diff --git a/src/main/scala/org/nlpcraft/model/NCToken.java b/src/main/scala/org/apache/nlpcraft/model/NCToken.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCToken.java
rename to src/main/scala/org/apache/nlpcraft/model/NCToken.java
index f2ad8a5..cb18e8a 100644
--- a/src/main/scala/org/nlpcraft/model/NCToken.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCToken.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 
@@ -33,7 +33,7 @@ import java.util.*;
  * Data models provide their required tokens in {@link NCModel#getEnabledBuiltInTokens()} method.
  * <p>
  * Read full documentation in <a target=_ href="https://nlpcraft.org/data-model.html">Data Model</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/">examples</a>.
+ * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.
  *
  * @see NCElement
  * @see NCContext#getVariants()
diff --git a/src/main/scala/org/nlpcraft/model/NCUser.java b/src/main/scala/org/apache/nlpcraft/model/NCUser.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCUser.java
rename to src/main/scala/org/apache/nlpcraft/model/NCUser.java
index 9cf3ba4..d72e086 100644
--- a/src/main/scala/org/nlpcraft/model/NCUser.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCUser.java
@@ -7,7 +7,7 @@
  *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 
diff --git a/src/main/scala/org/nlpcraft/model/NCValue.java b/src/main/scala/org/apache/nlpcraft/model/NCValue.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/NCValue.java
rename to src/main/scala/org/apache/nlpcraft/model/NCValue.java
index e490f76..227516c 100644
--- a/src/main/scala/org/nlpcraft/model/NCValue.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCValue.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.io.Serializable;
 import java.util.List;
diff --git a/src/main/scala/org/nlpcraft/model/NCValueLoader.java b/src/main/scala/org/apache/nlpcraft/model/NCValueLoader.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/NCValueLoader.java
rename to src/main/scala/org/apache/nlpcraft/model/NCValueLoader.java
index e891606..9d691bb 100644
--- a/src/main/scala/org/nlpcraft/model/NCValueLoader.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCValueLoader.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.Set;
 
diff --git a/src/main/scala/org/nlpcraft/model/NCVariant.java b/src/main/scala/org/apache/nlpcraft/model/NCVariant.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/NCVariant.java
rename to src/main/scala/org/apache/nlpcraft/model/NCVariant.java
index 6b59efc..50e546d 100644
--- a/src/main/scala/org/nlpcraft/model/NCVariant.java
+++ b/src/main/scala/org/apache/nlpcraft/model/NCVariant.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model;
+package org.apache.nlpcraft.model;
 
 import java.util.*;
 import java.util.stream.*;
diff --git a/src/main/scala/org/nlpcraft/model/factories/basic/NCBasicModelFactory.java b/src/main/scala/org/apache/nlpcraft/model/factories/basic/NCBasicModelFactory.java
similarity index 85%
rename from src/main/scala/org/nlpcraft/model/factories/basic/NCBasicModelFactory.java
rename to src/main/scala/org/apache/nlpcraft/model/factories/basic/NCBasicModelFactory.java
index bb0dafb..c21701a 100644
--- a/src/main/scala/org/nlpcraft/model/factories/basic/NCBasicModelFactory.java
+++ b/src/main/scala/org/apache/nlpcraft/model/factories/basic/NCBasicModelFactory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.factories.basic;
+package org.apache.nlpcraft.model.factories.basic;
 
-import org.nlpcraft.common.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.model.*;
 import java.util.*;
 
 /**
@@ -27,7 +27,7 @@ import java.util.*;
  * This factory doesn't have any configuration properties and uses {@link Class#newInstance()} to construct {@link NCModel}s.
  * </p>
  * Basic factory have to be specified in probe configuration. Here's
- * a <code>probe.conf</code> from <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/names">Names</a> example
+ * a <code>probe.conf</code> from <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/names">Names</a> example
  * using Spring-based factory:
  * <pre class="brush:js, highlight: [11, 12, 13, 14, 15, 16]">
  * nlpcraft {
@@ -38,12 +38,12 @@ import java.util.*;
  *         downLink = "localhost:8202" # Probe to server data pipe.
  *         jarsFolder = null
  *         models = [
- *             "org.nlpcraft.examples.names.NamesModel"
+ *             "org.apache.nlpcraft.examples.names.NamesModel"
  *         ]
  *         modelFactory = {
- *             type = "org.nlpcraft.model.factories.spring.NCSpringModelFactory"
+ *             type = "org.apache.nlpcraft.model.factories.spring.NCSpringModelFactory"
  *             properties = {
- *                 javaConfig = "org.nlpcraft.examples.names.NamesConfig"
+ *                 javaConfig = "org.apache.nlpcraft.examples.names.NamesConfig"
  *             }
  *         }
  *         lifecycle = [
diff --git a/src/main/scala/org/nlpcraft/model/factories/basic/package-info.java b/src/main/scala/org/apache/nlpcraft/model/factories/basic/package-info.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/factories/basic/package-info.java
rename to src/main/scala/org/apache/nlpcraft/model/factories/basic/package-info.java
index 50acb48..634af41 100644
--- a/src/main/scala/org/nlpcraft/model/factories/basic/package-info.java
+++ b/src/main/scala/org/apache/nlpcraft/model/factories/basic/package-info.java
@@ -18,4 +18,4 @@
 /**
  * Contains basic model factory implementation.
  */
-package org.nlpcraft.model.factories.basic;
\ No newline at end of file
+package org.apache.nlpcraft.model.factories.basic;
\ No newline at end of file
diff --git a/src/main/scala/org/nlpcraft/model/factories/spring/NCSpringModelFactory.java b/src/main/scala/org/apache/nlpcraft/model/factories/spring/NCSpringModelFactory.java
similarity index 92%
rename from src/main/scala/org/nlpcraft/model/factories/spring/NCSpringModelFactory.java
rename to src/main/scala/org/apache/nlpcraft/model/factories/spring/NCSpringModelFactory.java
index 163087b..4b5d9d8 100644
--- a/src/main/scala/org/nlpcraft/model/factories/spring/NCSpringModelFactory.java
+++ b/src/main/scala/org/apache/nlpcraft/model/factories/spring/NCSpringModelFactory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.factories.spring;
+package org.apache.nlpcraft.model.factories.spring;
 
-import org.nlpcraft.common.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.model.*;
 import org.springframework.context.annotation.*;
 import org.springframework.context.support.*;
 import java.util.*;
@@ -34,7 +34,7 @@ import java.util.*;
  * <li>{@value #XML_CONFIG_PROP} - path to an XML files with Spring bean definitions</li>
  * </ul>
  * Spring factory have to be specified in probe configuration. Here's
- * a <code>probe.conf</code> from <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/nlpcraft/examples/names">Names</a> example
+ * a <code>probe.conf</code> from <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/names">Names</a> example
  * using Spring-based factory:
  * <pre class="brush:js, highlight: [11, 12, 13, 14, 15, 16]">
  * nlpcraft {
@@ -45,12 +45,12 @@ import java.util.*;
  *         downLink = "localhost:8202" # Probe to server data pipe.
  *         jarsFolder = null
  *         models = [
- *             "org.nlpcraft.examples.names.NamesModel"
+ *             "org.apache.nlpcraft.examples.names.NamesModel"
  *         ]
  *         modelFactory = {
- *             type = "org.nlpcraft.model.factories.spring.NCSpringModelFactory"
+ *             type = "org.apache.nlpcraft.model.factories.spring.NCSpringModelFactory"
  *             properties = {
- *                 javaConfig = "org.nlpcraft.examples.names.NamesConfig"
+ *                 javaConfig = "org.apache.nlpcraft.examples.names.NamesConfig"
  *             }
  *         }
  *         lifecycle = [
diff --git a/src/main/scala/org/nlpcraft/model/factories/spring/package-info.java b/src/main/scala/org/apache/nlpcraft/model/factories/spring/package-info.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/factories/spring/package-info.java
rename to src/main/scala/org/apache/nlpcraft/model/factories/spring/package-info.java
index ef51950..5358169 100644
--- a/src/main/scala/org/nlpcraft/model/factories/spring/package-info.java
+++ b/src/main/scala/org/apache/nlpcraft/model/factories/spring/package-info.java
@@ -18,4 +18,4 @@
 /**
  * Contains Spring-based model factory implementation.
  */
-package org.nlpcraft.model.factories.spring;
\ No newline at end of file
+package org.apache.nlpcraft.model.factories.spring;
\ No newline at end of file
diff --git a/src/main/scala/org/nlpcraft/model/impl/NCCompanyImpl.java b/src/main/scala/org/apache/nlpcraft/model/impl/NCCompanyImpl.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/impl/NCCompanyImpl.java
rename to src/main/scala/org/apache/nlpcraft/model/impl/NCCompanyImpl.java
index fe3df64..8b55797 100644
--- a/src/main/scala/org/nlpcraft/model/impl/NCCompanyImpl.java
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/NCCompanyImpl.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl;
+package org.apache.nlpcraft.model.impl;
 
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.model.*;
 import java.util.*;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/model/impl/NCModelImpl.scala b/src/main/scala/org/apache/nlpcraft/model/impl/NCModelImpl.scala
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/impl/NCModelImpl.scala
rename to src/main/scala/org/apache/nlpcraft/model/impl/NCModelImpl.scala
index b00acab..89f1aa7 100644
--- a/src/main/scala/org/nlpcraft/model/impl/NCModelImpl.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/NCModelImpl.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl
+package org.apache.nlpcraft.model.impl
 
-import org.nlpcraft.model.{NCContext, NCIntentMatch, NCModel, NCRejection, NCResult, NCVariant}
-import org.nlpcraft.model.intent.impl.NCIntentSolver
+import org.apache.nlpcraft.model.{NCContext, NCIntentMatch, NCModel, NCRejection, NCResult, NCVariant}
+import org.apache.nlpcraft.model.intent.impl.NCIntentSolver
 
 /**
  * Internal model implementation combining model and intent solver.
diff --git a/src/main/scala/org/nlpcraft/model/impl/NCTokenImpl.scala b/src/main/scala/org/apache/nlpcraft/model/impl/NCTokenImpl.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/impl/NCTokenImpl.scala
rename to src/main/scala/org/apache/nlpcraft/model/impl/NCTokenImpl.scala
index 46f9286..629d1b7 100644
--- a/src/main/scala/org/nlpcraft/model/impl/NCTokenImpl.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/NCTokenImpl.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl
+package org.apache.nlpcraft.model.impl
 
 import java.io.Serializable
 import java.util.Collections
 
-import org.nlpcraft.common._
-import org.nlpcraft.common.nlp.NCNlpSentenceToken
-import org.nlpcraft.model._
-import org.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.nlp.NCNlpSentenceToken
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
 
 import scala.collection.JavaConverters._
 import scala.collection.{Seq, mutable}
diff --git a/src/main/scala/org/nlpcraft/model/impl/NCTokenLogger.scala b/src/main/scala/org/apache/nlpcraft/model/impl/NCTokenLogger.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/impl/NCTokenLogger.scala
rename to src/main/scala/org/apache/nlpcraft/model/impl/NCTokenLogger.scala
index 1de7497..2a90afd 100644
--- a/src/main/scala/org/nlpcraft/model/impl/NCTokenLogger.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/NCTokenLogger.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl
+package org.apache.nlpcraft.model.impl
 
 import java.text.SimpleDateFormat
 import java.util
 
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.common._
-import org.nlpcraft.common.ascii._
-import org.nlpcraft.common.nlp._
-import org.nlpcraft.model.NCToken
-import org.nlpcraft.model.impl.NCTokenPimp._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.ascii._
+import org.apache.nlpcraft.common.nlp._
+import org.apache.nlpcraft.model.NCToken
+import org.apache.nlpcraft.model.impl.NCTokenPimp._
 
 import scala.collection.JavaConverters._
 import scala.collection._
diff --git a/src/main/scala/org/nlpcraft/model/impl/NCTokenPimp.scala b/src/main/scala/org/apache/nlpcraft/model/impl/NCTokenPimp.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/impl/NCTokenPimp.scala
rename to src/main/scala/org/apache/nlpcraft/model/impl/NCTokenPimp.scala
index e9c2c51..9db5cbf 100644
--- a/src/main/scala/org/nlpcraft/model/impl/NCTokenPimp.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/NCTokenPimp.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl
+package org.apache.nlpcraft.model.impl
 
-import org.nlpcraft.model.NCToken
+import org.apache.nlpcraft.model.NCToken
 import scala.language.implicitConversions
 import scala.collection.JavaConverters._
 
diff --git a/src/main/scala/org/nlpcraft/model/impl/NCUserImpl.java b/src/main/scala/org/apache/nlpcraft/model/impl/NCUserImpl.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/impl/NCUserImpl.java
rename to src/main/scala/org/apache/nlpcraft/model/impl/NCUserImpl.java
index 67770c0..d6ba8f1 100644
--- a/src/main/scala/org/nlpcraft/model/impl/NCUserImpl.java
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/NCUserImpl.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl;
+package org.apache.nlpcraft.model.impl;
 
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.model.*;
 import java.util.*;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/model/impl/NCValueImpl.java b/src/main/scala/org/apache/nlpcraft/model/impl/NCValueImpl.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/impl/NCValueImpl.java
rename to src/main/scala/org/apache/nlpcraft/model/impl/NCValueImpl.java
index 41c6f95..348369b 100644
--- a/src/main/scala/org/nlpcraft/model/impl/NCValueImpl.java
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/NCValueImpl.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl;
+package org.apache.nlpcraft.model.impl;
 
-import org.nlpcraft.model.NCValue;
+import org.apache.nlpcraft.model.NCValue;
 
 import java.util.List;
 
diff --git a/src/main/scala/org/nlpcraft/model/impl/NCVariantImpl.java b/src/main/scala/org/apache/nlpcraft/model/impl/NCVariantImpl.java
similarity index 93%
rename from src/main/scala/org/nlpcraft/model/impl/NCVariantImpl.java
rename to src/main/scala/org/apache/nlpcraft/model/impl/NCVariantImpl.java
index 5e810ac..1fdb185 100644
--- a/src/main/scala/org/nlpcraft/model/impl/NCVariantImpl.java
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/NCVariantImpl.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl;
+package org.apache.nlpcraft.model.impl;
 
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.model.*;
 import java.util.*;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/model/impl/json/NCElementJson.java b/src/main/scala/org/apache/nlpcraft/model/impl/json/NCElementJson.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/impl/json/NCElementJson.java
rename to src/main/scala/org/apache/nlpcraft/model/impl/json/NCElementJson.java
index b0d6d42..c931d01 100644
--- a/src/main/scala/org/nlpcraft/model/impl/json/NCElementJson.java
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/json/NCElementJson.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl.json;
+package org.apache.nlpcraft.model.impl.json;
 
 import java.util.*;
 
diff --git a/src/main/scala/org/nlpcraft/model/impl/json/NCMacroJson.java b/src/main/scala/org/apache/nlpcraft/model/impl/json/NCMacroJson.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/impl/json/NCMacroJson.java
rename to src/main/scala/org/apache/nlpcraft/model/impl/json/NCMacroJson.java
index a343ac6..37b4ec8 100644
--- a/src/main/scala/org/nlpcraft/model/impl/json/NCMacroJson.java
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/json/NCMacroJson.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl.json;
+package org.apache.nlpcraft.model.impl.json;
 
 /**
  * Parsing bean.
diff --git a/src/main/scala/org/nlpcraft/model/impl/json/NCModelJson.java b/src/main/scala/org/apache/nlpcraft/model/impl/json/NCModelJson.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/model/impl/json/NCModelJson.java
rename to src/main/scala/org/apache/nlpcraft/model/impl/json/NCModelJson.java
index 4543840..2fd575a 100644
--- a/src/main/scala/org/nlpcraft/model/impl/json/NCModelJson.java
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/json/NCModelJson.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl.json;
+package org.apache.nlpcraft.model.impl.json;
 
 import java.util.*;
 
-import static org.nlpcraft.model.NCModel.*;
+import static org.apache.nlpcraft.model.NCModel.*;
 
 /**
  * Parsing bean.
diff --git a/src/main/scala/org/nlpcraft/model/impl/json/NCValueJson.java b/src/main/scala/org/apache/nlpcraft/model/impl/json/NCValueJson.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/impl/json/NCValueJson.java
rename to src/main/scala/org/apache/nlpcraft/model/impl/json/NCValueJson.java
index 8bd108c..5088f7d 100644
--- a/src/main/scala/org/nlpcraft/model/impl/json/NCValueJson.java
+++ b/src/main/scala/org/apache/nlpcraft/model/impl/json/NCValueJson.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.impl.json;
+package org.apache.nlpcraft.model.impl.json;
 
 /**
  * Parsing bean.
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentDslCompiler.scala b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentDslCompiler.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/intent/impl/NCIntentDslCompiler.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentDslCompiler.scala
index dd07ab7..e312210 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentDslCompiler.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentDslCompiler.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.impl
+package org.apache.nlpcraft.model.intent.impl
 
 import com.typesafe.scalalogging.LazyLogging
 import org.antlr.v4.runtime._
 import org.antlr.v4.runtime.tree._
-import org.nlpcraft.common.NCE
-import org.nlpcraft.model.NCToken
-import org.nlpcraft.model.intent.impl.antlr4.{NCIntentDslBaseListener, NCIntentDslLexer, NCIntentDslParser}
-import org.nlpcraft.model.intent.utils.{NCDslFlowItem, NCDslIntent, NCDslTerm, NCDslTokenPredicate}
+import org.apache.nlpcraft.common.NCE
+import org.apache.nlpcraft.model.NCToken
+import org.apache.nlpcraft.model.intent.impl.antlr4.{NCIntentDslBaseListener, NCIntentDslLexer, NCIntentDslParser}
+import org.apache.nlpcraft.model.intent.utils.{NCDslFlowItem, NCDslIntent, NCDslTerm, NCDslTokenPredicate}
 
 import scala.collection.JavaConverters._
 import scala.collection.mutable
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentScanner.scala b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentScanner.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/intent/impl/NCIntentScanner.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentScanner.scala
index 45da933..9cbdb81 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentScanner.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentScanner.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.impl
+package org.apache.nlpcraft.model.intent.impl
 
 import java.lang.reflect.{InvocationTargetException, Method, ParameterizedType, Type}
 import java.util
 import java.util.function.Function
 
-import org.nlpcraft.common._
-import org.nlpcraft.model._
-import org.nlpcraft.model.intent.utils.NCDslIntent
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.intent.utils.NCDslIntent
 
 import scala.collection.JavaConverters._
 import scala.collection._
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolver.scala b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolver.scala
similarity index 91%
rename from src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolver.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolver.scala
index 5d31e5b..e79ffdf 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolver.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolver.scala
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.impl
+package org.apache.nlpcraft.model.intent.impl
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCException
-import org.nlpcraft.common.debug.NCLogHolder
-import org.nlpcraft.common.opencensus.NCOpenCensusTrace
-import org.nlpcraft.common.util.NCUtils
-import org.nlpcraft.model.impl.{NCModelImpl, NCVariantImpl}
-import org.nlpcraft.model.{NCContext, NCIntentMatch, NCIntentSkip, NCRejection, NCResult, NCToken, NCVariant}
-import org.nlpcraft.model.intent.utils.NCDslIntent
-import org.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
+import org.apache.nlpcraft.common.NCException
+import org.apache.nlpcraft.common.debug.NCLogHolder
+import org.apache.nlpcraft.common.opencensus.NCOpenCensusTrace
+import org.apache.nlpcraft.common.util.NCUtils
+import org.apache.nlpcraft.model.impl.{NCModelImpl, NCVariantImpl}
+import org.apache.nlpcraft.model.{NCContext, NCIntentMatch, NCIntentSkip, NCRejection, NCResult, NCToken, NCVariant}
+import org.apache.nlpcraft.model.intent.utils.NCDslIntent
+import org.apache.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
 
 import scala.collection.JavaConverters._
 
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala
index c52722f..6bd7a46 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.impl
+package org.apache.nlpcraft.model.intent.impl
 
 import java.util.function.Function
 
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.common._
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.common.debug.{NCLogGroupToken, NCLogHolder}
-import org.nlpcraft.common.opencensus.NCOpenCensusTrace
-import org.nlpcraft.model.intent.utils.{NCDslFlowItem, NCDslIntent, NCDslTerm}
-import org.nlpcraft.model._
-import org.nlpcraft.model.impl.NCTokenLogger
-import org.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.common.debug.{NCLogGroupToken, NCLogHolder}
+import org.apache.nlpcraft.common.opencensus.NCOpenCensusTrace
+import org.apache.nlpcraft.model.intent.utils.{NCDslFlowItem, NCDslIntent, NCDslTerm}
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.impl.NCTokenLogger
+import org.apache.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
 
 import scala.collection.JavaConversions._
 import scala.collection.JavaConverters._
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverInput.scala b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverInput.scala
similarity index 89%
rename from src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverInput.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverInput.scala
index 67dc633..5f627d1 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverInput.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverInput.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.impl
+package org.apache.nlpcraft.model.intent.impl
 
-import org.nlpcraft.model.{NCContext, NCIntentMatch}
+import org.apache.nlpcraft.model.{NCContext, NCIntentMatch}
 
 /**
  * Input data for intent solver.
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverResult.scala b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverResult.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverResult.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverResult.scala
index 1acd09a..10ccabb 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverResult.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverResult.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.impl
+package org.apache.nlpcraft.model.intent.impl
 
-import org.nlpcraft.model.{NCIntentMatch, _}
+import org.apache.nlpcraft.model.{NCIntentMatch, _}
 
 /**
   * Intent solver engine result. Using basic case class for easier Java interop.
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverVariant.scala b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverVariant.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverVariant.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverVariant.scala
index e0951cb..0716494 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/NCIntentSolverVariant.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverVariant.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.impl
+package org.apache.nlpcraft.model.intent.impl
 
 import java.util
 
-import org.nlpcraft.model._
+import org.apache.nlpcraft.model._
 
 import scala.collection.JavaConverters._
 
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4
similarity index 100%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.interp b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.interp
similarity index 100%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.interp
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.interp
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.tokens b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.tokens
similarity index 100%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.tokens
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.tokens
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseListener.java b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseListener.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseListener.java
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseListener.java
index dde4b04..a547e2f 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseListener.java
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseListener.java
@@ -1,5 +1,5 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
-package org.nlpcraft.model.intent.impl.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.model.intent.impl.antlr4;
 
 import org.antlr.v4.runtime.ParserRuleContext;
 import org.antlr.v4.runtime.tree.ErrorNode;
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseVisitor.java b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseVisitor.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseVisitor.java
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseVisitor.java
index 3692ab5..6750d18 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseVisitor.java
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslBaseVisitor.java
@@ -1,5 +1,5 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
-package org.nlpcraft.model.intent.impl.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.model.intent.impl.antlr4;
 import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.interp b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.interp
similarity index 100%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.interp
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.interp
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.java b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.java
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.java
index 3244026..96a4a80 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.java
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.java
@@ -1,13 +1,10 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
-package org.nlpcraft.model.intent.impl.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.model.intent.impl.antlr4;
 import org.antlr.v4.runtime.Lexer;
 import org.antlr.v4.runtime.CharStream;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.TokenStream;
 import org.antlr.v4.runtime.*;
 import org.antlr.v4.runtime.atn.*;
 import org.antlr.v4.runtime.dfa.DFA;
-import org.antlr.v4.runtime.misc.*;
 
 @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
 public class NCIntentDslLexer extends Lexer {
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.tokens b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.tokens
similarity index 100%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.tokens
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslLexer.tokens
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslListener.java b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslListener.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslListener.java
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslListener.java
index 6613570..79bf88c 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslListener.java
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslListener.java
@@ -1,5 +1,5 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
-package org.nlpcraft.model.intent.impl.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.model.intent.impl.antlr4;
 import org.antlr.v4.runtime.tree.ParseTreeListener;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslParser.java b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslParser.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslParser.java
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslParser.java
index b3bd2c7..3afdbb9 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslParser.java
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslParser.java
@@ -1,13 +1,10 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
-package org.nlpcraft.model.intent.impl.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.model.intent.impl.antlr4;
 import org.antlr.v4.runtime.atn.*;
 import org.antlr.v4.runtime.dfa.DFA;
 import org.antlr.v4.runtime.*;
-import org.antlr.v4.runtime.misc.*;
 import org.antlr.v4.runtime.tree.*;
 import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
 
 @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
 public class NCIntentDslParser extends Parser {
diff --git a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslVisitor.java b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslVisitor.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslVisitor.java
rename to src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslVisitor.java
index ec5be5a..2682020 100644
--- a/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDslVisitor.java
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDslVisitor.java
@@ -1,5 +1,5 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
-package org.nlpcraft.model.intent.impl.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.model.intent.impl.antlr4;
 import org.antlr.v4.runtime.tree.ParseTreeVisitor;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslFlowItem.scala b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslFlowItem.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/intent/utils/NCDslFlowItem.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslFlowItem.scala
index cb9b4dc..1fdd62c 100644
--- a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslFlowItem.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslFlowItem.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.utils
+package org.apache.nlpcraft.model.intent.utils
 
 /**
  * Flow item from intent DSL.
diff --git a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslIntent.scala b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslIntent.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/intent/utils/NCDslIntent.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslIntent.scala
index 35e881a..936dd63 100644
--- a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslIntent.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslIntent.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.utils
+package org.apache.nlpcraft.model.intent.utils
 
 /**
  * Intent from intent DSL.
diff --git a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslTerm.java b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTerm.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/intent/utils/NCDslTerm.java
rename to src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTerm.java
index c788fe2..6ed04a6 100644
--- a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslTerm.java
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTerm.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.utils;
+package org.apache.nlpcraft.model.intent.utils;
 
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.model.*;
 import java.io.*;
 import java.util.function.*;
 
diff --git a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslTokenChecker.scala b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTokenChecker.scala
similarity index 91%
rename from src/main/scala/org/nlpcraft/model/intent/utils/NCDslTokenChecker.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTokenChecker.scala
index fdc50fe..24344a2 100644
--- a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslTokenChecker.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTokenChecker.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.utils
+package org.apache.nlpcraft.model.intent.utils
 
-import org.nlpcraft.model.NCToken
-import org.nlpcraft.common._
+import org.apache.nlpcraft.model.NCToken
+import org.apache.nlpcraft.common._
 
 import scala.collection.mutable
 
diff --git a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslTokenPredicate.java b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTokenPredicate.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/model/intent/utils/NCDslTokenPredicate.java
rename to src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTokenPredicate.java
index 36c18d1..f1f0cdb 100644
--- a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslTokenPredicate.java
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTokenPredicate.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.utils;
+package org.apache.nlpcraft.model.intent.utils;
 
 import org.apache.commons.collections.*;
 import org.apache.commons.lang3.*;
-import org.nlpcraft.common.util.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.common.util.*;
+import org.apache.nlpcraft.model.*;
 import java.util.*;
 import java.util.function.*;
 import java.util.regex.*;
diff --git a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslTokenQualifier.scala b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTokenQualifier.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/intent/utils/NCDslTokenQualifier.scala
rename to src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTokenQualifier.scala
index 2dffc43..fe5d6e0 100644
--- a/src/main/scala/org/nlpcraft/model/intent/utils/NCDslTokenQualifier.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/intent/utils/NCDslTokenQualifier.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.utils
+package org.apache.nlpcraft.model.intent.utils
 
-import org.nlpcraft.common._
-import org.nlpcraft.model.NCToken
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.model.NCToken
 
 import scala.collection.JavaConverters._
 import scala.collection.mutable
diff --git a/src/main/scala/org/nlpcraft/model/opencensus/NCBaseTraceExporter.java b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCBaseTraceExporter.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/opencensus/NCBaseTraceExporter.java
rename to src/main/scala/org/apache/nlpcraft/model/opencensus/NCBaseTraceExporter.java
index e168517..47a14f3 100644
--- a/src/main/scala/org/nlpcraft/model/opencensus/NCBaseTraceExporter.java
+++ b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCBaseTraceExporter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.opencensus;
+package org.apache.nlpcraft.model.opencensus;
 
 import io.opencensus.trace.*;
 import io.opencensus.trace.config.*;
 import io.opencensus.trace.samplers.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.model.*;
 import org.slf4j.*;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/model/opencensus/NCJaegerExporter.java b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCJaegerExporter.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/opencensus/NCJaegerExporter.java
rename to src/main/scala/org/apache/nlpcraft/model/opencensus/NCJaegerExporter.java
index db2002b..16f76a6 100644
--- a/src/main/scala/org/nlpcraft/model/opencensus/NCJaegerExporter.java
+++ b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCJaegerExporter.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.opencensus;
+package org.apache.nlpcraft.model.opencensus;
 
 import io.opencensus.exporter.trace.jaeger.*;
-import org.nlpcraft.common.config.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.common.config.*;
+import org.apache.nlpcraft.model.*;
 
 /**
  * Probe lifecycle component that manages OpenCensus <a target=_ href="https://www.jaegertracing.io/">Jaeger</a> trace exporter. See
diff --git a/src/main/scala/org/nlpcraft/model/opencensus/NCPrometheusExporter.java b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCPrometheusExporter.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/opencensus/NCPrometheusExporter.java
rename to src/main/scala/org/apache/nlpcraft/model/opencensus/NCPrometheusExporter.java
index d5fc338..68a2967 100644
--- a/src/main/scala/org/nlpcraft/model/opencensus/NCPrometheusExporter.java
+++ b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCPrometheusExporter.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.opencensus;
+package org.apache.nlpcraft.model.opencensus;
 
 import io.opencensus.exporter.stats.prometheus.*;
 import io.prometheus.client.exporter.*;
-import org.nlpcraft.common.*;
-import org.nlpcraft.common.config.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.common.config.*;
+import org.apache.nlpcraft.model.*;
 import org.slf4j.*;
 import scala.*;
 import java.io.*;
diff --git a/src/main/scala/org/nlpcraft/model/opencensus/NCStackdriverStatsExporter.java b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCStackdriverStatsExporter.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/opencensus/NCStackdriverStatsExporter.java
rename to src/main/scala/org/apache/nlpcraft/model/opencensus/NCStackdriverStatsExporter.java
index 5d6fdb8..1afc70d 100644
--- a/src/main/scala/org/nlpcraft/model/opencensus/NCStackdriverStatsExporter.java
+++ b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCStackdriverStatsExporter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.opencensus;
+package org.apache.nlpcraft.model.opencensus;
 
 import io.opencensus.exporter.stats.stackdriver.*;
-import org.nlpcraft.common.*;
-import org.nlpcraft.common.config.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.common.config.*;
+import org.apache.nlpcraft.model.*;
 import org.slf4j.*;
 import java.io.*;
 
diff --git a/src/main/scala/org/nlpcraft/model/opencensus/NCStackdriverTraceExporter.java b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCStackdriverTraceExporter.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/opencensus/NCStackdriverTraceExporter.java
rename to src/main/scala/org/apache/nlpcraft/model/opencensus/NCStackdriverTraceExporter.java
index 6a1de39..c58a4d9 100644
--- a/src/main/scala/org/nlpcraft/model/opencensus/NCStackdriverTraceExporter.java
+++ b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCStackdriverTraceExporter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.opencensus;
+package org.apache.nlpcraft.model.opencensus;
 
 import io.opencensus.exporter.trace.stackdriver.*;
-import org.nlpcraft.common.*;
-import org.nlpcraft.common.config.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.common.config.*;
+import org.apache.nlpcraft.model.*;
 import java.io.*;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/model/opencensus/NCZipkinExporter.java b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCZipkinExporter.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/opencensus/NCZipkinExporter.java
rename to src/main/scala/org/apache/nlpcraft/model/opencensus/NCZipkinExporter.java
index 9ae7782..ed75f4d 100644
--- a/src/main/scala/org/nlpcraft/model/opencensus/NCZipkinExporter.java
+++ b/src/main/scala/org/apache/nlpcraft/model/opencensus/NCZipkinExporter.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.opencensus;
+package org.apache.nlpcraft.model.opencensus;
 
 import io.opencensus.exporter.trace.zipkin.*;
-import org.nlpcraft.common.config.*;
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.common.config.*;
+import org.apache.nlpcraft.model.*;
 
 /**
  * Probe lifecycle component that manages OpenCensus <a target=_ href="https://zipkin.io/">Zipkin</a> trace exporter. See
diff --git a/src/main/scala/org/nlpcraft/model/opencensus/package-info.java b/src/main/scala/org/apache/nlpcraft/model/opencensus/package-info.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/opencensus/package-info.java
rename to src/main/scala/org/apache/nlpcraft/model/opencensus/package-info.java
index 160c522..8fba831 100644
--- a/src/main/scala/org/nlpcraft/model/opencensus/package-info.java
+++ b/src/main/scala/org/apache/nlpcraft/model/opencensus/package-info.java
@@ -18,4 +18,4 @@
 /**
  * Contains OpenCensus integration components.
  */
-package org.nlpcraft.model.opencensus;
\ No newline at end of file
+package org.apache.nlpcraft.model.opencensus;
\ No newline at end of file
diff --git a/src/main/scala/org/nlpcraft/model/opencensus/stats/NCOpenCensusModelStats.scala b/src/main/scala/org/apache/nlpcraft/model/opencensus/stats/NCOpenCensusModelStats.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/opencensus/stats/NCOpenCensusModelStats.scala
rename to src/main/scala/org/apache/nlpcraft/model/opencensus/stats/NCOpenCensusModelStats.scala
index c1f0538..f72da8f 100644
--- a/src/main/scala/org/nlpcraft/model/opencensus/stats/NCOpenCensusModelStats.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/opencensus/stats/NCOpenCensusModelStats.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.opencensus.stats
+package org.apache.nlpcraft.model.opencensus.stats
 
 import java.util
 import java.util.Collections
diff --git a/src/main/scala/org/nlpcraft/model/package-info.java b/src/main/scala/org/apache/nlpcraft/model/package-info.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/package-info.java
rename to src/main/scala/org/apache/nlpcraft/model/package-info.java
index cb99c39..52df692 100644
--- a/src/main/scala/org/nlpcraft/model/package-info.java
+++ b/src/main/scala/org/apache/nlpcraft/model/package-info.java
@@ -18,4 +18,4 @@
 /**
  * Contains <b>main API</b> for defining data models.
  */
-package org.nlpcraft.model;
\ No newline at end of file
+package org.apache.nlpcraft.model;
\ No newline at end of file
diff --git a/src/main/scala/org/nlpcraft/model/package.scala b/src/main/scala/org/apache/nlpcraft/model/package.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/model/package.scala
rename to src/main/scala/org/apache/nlpcraft/model/package.scala
index 62465e3..5254b0b 100644
--- a/src/main/scala/org/nlpcraft/model/package.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/package.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft
+package org.apache.nlpcraft
 
-import org.nlpcraft.model.impl.NCTokenPimp
+import org.apache.nlpcraft.model.impl.NCTokenPimp
 
 import scala.language.implicitConversions
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlAggregate.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlAggregate.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlAggregate.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlAggregate.java
index 9bf853d..17f894f 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlAggregate.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlAggregate.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 import java.util.List;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlColumn.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlColumn.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlColumn.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlColumn.java
index d682faf..f58403c 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlColumn.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlColumn.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 /**
  * TODO: add description.
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlCondition.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlCondition.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlCondition.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlCondition.java
index ab4378d..8ec0d49 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlCondition.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlCondition.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 public interface NCSqlCondition {
     NCSqlColumn getColumn();
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlDateRange.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlDateRange.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlDateRange.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlDateRange.java
index 2ae2049..819f8d4 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlDateRange.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlDateRange.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 import java.sql.Timestamp;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlException.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlException.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlException.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlException.java
index 2d1ed7d..a7e9d76 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlException.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 public class NCSqlException extends RuntimeException {
     public NCSqlException(String message) {
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlFunction.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlFunction.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlFunction.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlFunction.java
index 1c4f692..7a1a5bd 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlFunction.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlFunction.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 public interface NCSqlFunction {
     NCSqlColumn getColumn();
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlInCondition.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlInCondition.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlInCondition.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlInCondition.java
index 6c982b4..0b8260a 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlInCondition.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlInCondition.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 import java.util.List;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlJoin.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlJoin.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlJoin.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlJoin.java
index d6e525d..c4fc8db 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlJoin.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlJoin.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 import java.util.List;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlLimit.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlLimit.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlLimit.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlLimit.java
index 9e04c1b..2450c34 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlLimit.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlLimit.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 /**
  * TODO: add description.
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlModelGenerator.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlModelGenerator.java
similarity index 88%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlModelGenerator.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlModelGenerator.java
index 3ec896b..d744487 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlModelGenerator.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlModelGenerator.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
-import org.nlpcraft.model.tools.sqlgen.impl.NCSqlModelGeneratorImpl;
+import org.apache.nlpcraft.model.tools.sqlgen.impl.NCSqlModelGeneratorImpl;
 
 /**
  * Command line utility to generate NLPCraft model stub from given SQL RDBMS.
@@ -28,7 +28,7 @@ import org.nlpcraft.model.tools.sqlgen.impl.NCSqlModelGeneratorImpl;
  * <p>
  * Run this class with <code>--help</code> parameter to get a full up-to-date documentation:
  * <pre class="brush:plain">
- * java -cp nlpcraft-x.x.x-all-deps.jar org.nlpcraft.model.tools.sqlgen.NCSqlModelGenerator --help
+ * java -cp nlpcraft-x.x.x-all-deps.jar org.apache.nlpcraft.model.tools.sqlgen.NCSqlModelGenerator --help
  * </pre>
  */
 public class NCSqlModelGenerator {
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlQuery.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlQuery.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlQuery.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlQuery.java
index 7718d81..2063aab 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlQuery.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlQuery.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 import java.util.List;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSchema.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSchema.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSchema.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSchema.java
index 973763e..aa6fd52 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSchema.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSchema.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 import java.util.Collection;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSchemaBuilder.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSchemaBuilder.java
similarity index 85%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSchemaBuilder.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSchemaBuilder.java
index 79f9c69..87e572a 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSchemaBuilder.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSchemaBuilder.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
-import org.nlpcraft.model.NCModel;
-import org.nlpcraft.model.tools.sqlgen.impl.NCSqlUtilsAdapter;
+import org.apache.nlpcraft.model.NCModel;
+import org.apache.nlpcraft.model.tools.sqlgen.impl.NCSqlUtilsAdapter;
 
 public class NCSqlSchemaBuilder {
     public static NCSqlSchema makeSchema(NCModel model) {
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSimpleCondition.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSimpleCondition.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSimpleCondition.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSimpleCondition.java
index 05cd8b8..2e04ff2 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSimpleCondition.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSimpleCondition.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 public interface NCSqlSimpleCondition extends NCSqlCondition {
     String getOperation();
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSort.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSort.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSort.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSort.java
index 26ab80c..4d3684d 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlSort.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlSort.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 /**
  * TODO: add description.
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlTable.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlTable.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlTable.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlTable.java
index 1658c80..0fe31f2 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlTable.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlTable.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
 import java.util.List;
 import java.util.Optional;
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlUtils.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlUtils.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlUtils.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlUtils.java
index 0481a92..6badd41 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/NCSqlUtils.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/NCSqlUtils.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen;
+package org.apache.nlpcraft.model.tools.sqlgen;
 
-import org.nlpcraft.model.NCToken;
-import org.nlpcraft.model.tools.sqlgen.impl.NCSqlUtilsAdapter;
+import org.apache.nlpcraft.model.NCToken;
+import org.apache.nlpcraft.model.tools.sqlgen.impl.NCSqlUtilsAdapter;
 
 import java.util.List;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/impl/NCSqlBeans.scala b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlBeans.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/impl/NCSqlBeans.scala
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlBeans.scala
index 47dddaa..d79e14e 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/impl/NCSqlBeans.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlBeans.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen.impl
+package org.apache.nlpcraft.model.tools.sqlgen.impl
 
 import java.sql.Timestamp
 import java.util
 import java.util.Optional
 
-import org.nlpcraft.model.tools.sqlgen._
+import org.apache.nlpcraft.model.tools.sqlgen._
 
 import scala.collection.JavaConverters._
 import scala.collection._
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
index 36cc476..4276195 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen.impl
+package org.apache.nlpcraft.model.tools.sqlgen.impl
 
 import java.io.{File, FileOutputStream, IOException}
 import java.sql.{Connection, DriverManager, ResultSet}
@@ -28,9 +28,9 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include
 import com.fasterxml.jackson.databind.ObjectMapper
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
 import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.Feature
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.common.nlp.core.NCNlpPorterStemmer
-import org.nlpcraft.model.impl.json.{NCElementJson, NCMacroJson, NCModelJson}
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.common.nlp.core.NCNlpPorterStemmer
+import org.apache.nlpcraft.model.impl.json.{NCElementJson, NCMacroJson, NCModelJson}
 import resource.managed
 
 import scala.collection.JavaConverters._
@@ -568,7 +568,7 @@ object NCSqlModelGeneratorImpl {
                    |    NCSqlModelGenerator -- NLPCraft model generator for SQL databases.
                    |
                    |SYNOPSIS:
-                   |    java -cp nlpcraft-x.x.x-all-deps.jar org.nlpcraft.model.tools.sqlgen.NCSqlModelGenerator [PARAMETERS]
+                   |    java -cp nlpcraft-x.x.x-all-deps.jar org.apache.nlpcraft.model.tools.sqlgen.NCSqlModelGenerator [PARAMETERS]
                    |
                    |DESCRIPTION:
                    |    This utility generates NLPCraft model stub for a given SQL database schema. You
@@ -672,7 +672,7 @@ object NCSqlModelGeneratorImpl {
                |                             do not start with '_'.
                |
                |EXAMPLES:
-               |    java -cp nlpcraft-x.x.x-all-deps.jar org.nlpcraft.model.tools.sqlgen.NCSqlModelGenerator
+               |    java -cp nlpcraft-x.x.x-all-deps.jar org.apache.nlpcraft.model.tools.sqlgen.NCSqlModelGenerator
                |        -r jdbc:postgresql://localhost:5432/mydb
                |        -d org.postgresql.Driver
                |        -f "tbl_, col_"
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/impl/NCSqlUtilsAdapter.scala b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlUtilsAdapter.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/impl/NCSqlUtilsAdapter.scala
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlUtilsAdapter.scala
index 9bb911f..69e67e5 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/impl/NCSqlUtilsAdapter.scala
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlUtilsAdapter.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.sqlgen.impl
+package org.apache.nlpcraft.model.tools.sqlgen.impl
 
 import java.sql.Timestamp
 import java.util
 
-import org.nlpcraft.model.tools.sqlgen.{NCSqlLimit, _}
-import org.nlpcraft.model.{NCModel, NCToken}
+import org.apache.nlpcraft.model.tools.sqlgen.{NCSqlLimit, _}
+import org.apache.nlpcraft.model.{NCModel, NCToken}
 
 import scala.collection.JavaConverters._
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/sqlgen/package-info.java b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/package-info.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/model/tools/sqlgen/package-info.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/package-info.java
index 53f8c3e..44ec1ee 100644
--- a/src/main/scala/org/nlpcraft/model/tools/sqlgen/package-info.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/package-info.java
@@ -18,4 +18,4 @@
 /**
  * Contains model stub generator for SQL RDBMS.
  */
-package org.nlpcraft.model.tools.sqlgen;
\ No newline at end of file
+package org.apache.nlpcraft.model.tools.sqlgen;
\ No newline at end of file
diff --git a/src/main/scala/org/nlpcraft/model/tools/test/NCTestClient.java b/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClient.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/tools/test/NCTestClient.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClient.java
index 7851d44..26890e5 100644
--- a/src/main/scala/org/nlpcraft/model/tools/test/NCTestClient.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClient.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.test;
+package org.apache.nlpcraft.model.tools.test;
 
 import java.io.IOException;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/test/NCTestClientBuilder.java b/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientBuilder.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/model/tools/test/NCTestClientBuilder.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientBuilder.java
index ae2551a..9b2f231 100644
--- a/src/main/scala/org/nlpcraft/model/tools/test/NCTestClientBuilder.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientBuilder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.test;
+package org.apache.nlpcraft.model.tools.test;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
@@ -33,8 +33,8 @@ import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
 import org.jsoup.Jsoup;
-import org.nlpcraft.probe.embedded.NCEmbeddedProbe;
-import org.nlpcraft.probe.embedded.NCEmbeddedResult;
+import org.apache.nlpcraft.probe.embedded.NCEmbeddedProbe;
+import org.apache.nlpcraft.probe.embedded.NCEmbeddedResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/test/NCTestClientException.java b/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientException.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/model/tools/test/NCTestClientException.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientException.java
index ff249f6..27d392b 100644
--- a/src/main/scala/org/nlpcraft/model/tools/test/NCTestClientException.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.test;
+package org.apache.nlpcraft.model.tools.test;
 
 /**
  * Test client exception. This exception is thrown by the test framework.
diff --git a/src/main/scala/org/nlpcraft/model/tools/test/NCTestResult.java b/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestResult.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/model/tools/test/NCTestResult.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestResult.java
index 87bb03c..36e1c17 100644
--- a/src/main/scala/org/nlpcraft/model/tools/test/NCTestResult.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestResult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools.test;
+package org.apache.nlpcraft.model.tools.test;
 
 import java.util.Optional;
 
diff --git a/src/main/scala/org/nlpcraft/model/tools/test/package-info.java b/src/main/scala/org/apache/nlpcraft/model/tools/test/package-info.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/model/tools/test/package-info.java
rename to src/main/scala/org/apache/nlpcraft/model/tools/test/package-info.java
index dee0e84..06e4703 100644
--- a/src/main/scala/org/nlpcraft/model/tools/test/package-info.java
+++ b/src/main/scala/org/apache/nlpcraft/model/tools/test/package-info.java
@@ -52,4 +52,4 @@
  * }
  * </pre>
  */
-package org.nlpcraft.model.tools.test;
\ No newline at end of file
+package org.apache.nlpcraft.model.tools.test;
\ No newline at end of file
diff --git a/src/main/scala/org/nlpcraft/probe/NCProbe.scala b/src/main/scala/org/apache/nlpcraft/probe/NCProbe.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/probe/NCProbe.scala
rename to src/main/scala/org/apache/nlpcraft/probe/NCProbe.scala
index 48e6fe8..21bbb5d 100644
--- a/src/main/scala/org/nlpcraft/probe/NCProbe.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/NCProbe.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe
+package org.apache.nlpcraft.probe
 
 import java.util.concurrent.CompletableFuture
 
diff --git a/src/main/scala/org/nlpcraft/probe/NCProbeBoot.scala b/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
similarity index 88%
rename from src/main/scala/org/nlpcraft/probe/NCProbeBoot.scala
rename to src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
index 32cf0c0..dd43a45 100644
--- a/src/main/scala/org/nlpcraft/probe/NCProbeBoot.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
@@ -15,39 +15,39 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe
+package org.apache.nlpcraft.probe
 
 import java.util.concurrent.CompletableFuture
 
 import com.typesafe.config.{Config, ConfigFactory, ConfigValueFactory}
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.dict.NCDictionaryManager
-import org.nlpcraft.common.nlp.numeric.NCNumericManager
-import org.nlpcraft.common.opencensus.NCOpenCensusTrace
-import org.nlpcraft.common.version.NCVersion
-import org.nlpcraft.common.{NCE, NCException, U}
-import org.nlpcraft.model.NCModel
-import org.nlpcraft.probe.mgrs.cmd.NCCommandManager
-import org.nlpcraft.probe.mgrs.conn.NCConnectionManager
-import org.nlpcraft.probe.mgrs.conversation.NCConversationManager
-import org.nlpcraft.probe.mgrs.deploy.NCDeployManager
-import org.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
-import org.nlpcraft.probe.mgrs.lifecycle.NCLifecycleManager
-import org.nlpcraft.probe.mgrs.model.NCModelManager
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnrichmentManager
-import org.nlpcraft.probe.mgrs.nlp.enrichers.aggregation.NCAggregationEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.dictionary.NCDictionaryEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.limit.NCLimitEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.model.NCModelEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.post.NCPostEnrichProcessor
-import org.nlpcraft.probe.mgrs.nlp.enrichers.relation.NCRelationEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.sort.NCSortEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.stopword.NCStopWordEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.suspicious.NCSuspiciousNounsEnricher
-import org.nlpcraft.probe.mgrs.nlp.validate.NCValidateManager
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.dict.NCDictionaryManager
+import org.apache.nlpcraft.common.nlp.numeric.NCNumericManager
+import org.apache.nlpcraft.common.opencensus.NCOpenCensusTrace
+import org.apache.nlpcraft.common.version.NCVersion
+import org.apache.nlpcraft.common.{NCE, NCException, U}
+import org.apache.nlpcraft.model.NCModel
+import org.apache.nlpcraft.probe.mgrs.cmd.NCCommandManager
+import org.apache.nlpcraft.probe.mgrs.conn.NCConnectionManager
+import org.apache.nlpcraft.probe.mgrs.conversation.NCConversationManager
+import org.apache.nlpcraft.probe.mgrs.deploy.NCDeployManager
+import org.apache.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
+import org.apache.nlpcraft.probe.mgrs.lifecycle.NCLifecycleManager
+import org.apache.nlpcraft.probe.mgrs.model.NCModelManager
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnrichmentManager
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.aggregation.NCAggregationEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.dictionary.NCDictionaryEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.limit.NCLimitEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.model.NCModelEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.post.NCPostEnrichProcessor
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.relation.NCRelationEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.sort.NCSortEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.stopword.NCStopWordEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.suspicious.NCSuspiciousNounsEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.validate.NCValidateManager
 
 import scala.collection.JavaConverters._
 import scala.compat.Platform.currentTime
diff --git a/src/main/scala/org/nlpcraft/probe/embedded/NCEmbeddedProbe.java b/src/main/scala/org/apache/nlpcraft/probe/embedded/NCEmbeddedProbe.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/probe/embedded/NCEmbeddedProbe.java
rename to src/main/scala/org/apache/nlpcraft/probe/embedded/NCEmbeddedProbe.java
index 367c535..c7d9005 100644
--- a/src/main/scala/org/nlpcraft/probe/embedded/NCEmbeddedProbe.java
+++ b/src/main/scala/org/apache/nlpcraft/probe/embedded/NCEmbeddedProbe.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.embedded;
+package org.apache.nlpcraft.probe.embedded;
 
-import org.nlpcraft.common.*;
-import org.nlpcraft.model.*;
-import org.nlpcraft.model.tools.test.*;
-import org.nlpcraft.probe.*;
-import org.nlpcraft.probe.mgrs.nlp.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.model.*;
+import org.apache.nlpcraft.model.tools.test.*;
+import org.apache.nlpcraft.probe.*;
+import org.apache.nlpcraft.probe.mgrs.nlp.*;
 import java.util.concurrent.*;
 import java.util.function.*;
 
diff --git a/src/main/scala/org/nlpcraft/probe/embedded/NCEmbeddedResult.java b/src/main/scala/org/apache/nlpcraft/probe/embedded/NCEmbeddedResult.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/probe/embedded/NCEmbeddedResult.java
rename to src/main/scala/org/apache/nlpcraft/probe/embedded/NCEmbeddedResult.java
index f9c4d17..d6de071 100644
--- a/src/main/scala/org/nlpcraft/probe/embedded/NCEmbeddedResult.java
+++ b/src/main/scala/org/apache/nlpcraft/probe/embedded/NCEmbeddedResult.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.embedded;
+package org.apache.nlpcraft.probe.embedded;
 
-import org.nlpcraft.model.*;
+import org.apache.nlpcraft.model.*;
 import java.util.function.*;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/probe/embedded/package-info.java b/src/main/scala/org/apache/nlpcraft/probe/embedded/package-info.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/probe/embedded/package-info.java
rename to src/main/scala/org/apache/nlpcraft/probe/embedded/package-info.java
index 61d48ec..d228a43 100644
--- a/src/main/scala/org/nlpcraft/probe/embedded/package-info.java
+++ b/src/main/scala/org/apache/nlpcraft/probe/embedded/package-info.java
@@ -19,4 +19,4 @@
  * Contains embedded probe controller. Embedded probe can be used to start a data probe
  * in the same JVM process to save on REST network trips.
  */
-package org.nlpcraft.probe.embedded;
\ No newline at end of file
+package org.apache.nlpcraft.probe.embedded;
\ No newline at end of file
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/NCModelDecorator.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCModelDecorator.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/probe/mgrs/NCModelDecorator.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/NCModelDecorator.scala
index 8ce0b89..a4b28fd 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/NCModelDecorator.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCModelDecorator.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs
+package org.apache.nlpcraft.probe.mgrs
 
-import org.nlpcraft.model.{NCElement, NCModel}
+import org.apache.nlpcraft.model.{NCElement, NCModel}
 
 /**
   *
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/NCProbeMessage.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeMessage.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/probe/mgrs/NCProbeMessage.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeMessage.scala
index 78c670d..b4a98e9 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/NCProbeMessage.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCProbeMessage.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs
+package org.apache.nlpcraft.probe.mgrs
 
 import java.io._
 
-import org.nlpcraft.common._
-import org.nlpcraft.common.ascii._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.ascii._
 
 import scala.collection.mutable
 
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/NCSynonym.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCSynonym.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/NCSynonym.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/NCSynonym.scala
index 2b6df91..94f70a3 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/NCSynonym.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCSynonym.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs
+package org.apache.nlpcraft.probe.mgrs
 
-import org.nlpcraft.common.nlp.{NCNlpSentenceToken, NCNlpSentenceTokenBuffer}
-import org.nlpcraft.model._
-import org.nlpcraft.probe.mgrs.NCSynonymChunkKind._
+import org.apache.nlpcraft.common.nlp.{NCNlpSentenceToken, NCNlpSentenceTokenBuffer}
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.probe.mgrs.NCSynonymChunkKind._
 
 import scala.collection.mutable.ArrayBuffer
 
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/NCSynonymChunk.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCSynonymChunk.scala
similarity index 91%
rename from src/main/scala/org/nlpcraft/probe/mgrs/NCSynonymChunk.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/NCSynonymChunk.scala
index 0e1383a..bebd69a 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/NCSynonymChunk.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCSynonymChunk.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs
+package org.apache.nlpcraft.probe.mgrs
 
 import java.util.regex.Pattern
 
-import org.nlpcraft.model.NCToken
-import org.nlpcraft.probe.mgrs.NCSynonymChunkKind._
+import org.apache.nlpcraft.model.NCToken
+import org.apache.nlpcraft.probe.mgrs.NCSynonymChunkKind._
 
 /**
  *
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/NCSynonymChunkKind.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCSynonymChunkKind.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/probe/mgrs/NCSynonymChunkKind.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/NCSynonymChunkKind.scala
index 8ea2801..7f1e645 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/NCSynonymChunkKind.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/NCSynonymChunkKind.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs
+package org.apache.nlpcraft.probe.mgrs
 
 /**
   * Synonym element type.
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
similarity index 89%
rename from src/main/scala/org/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
index 34779a3..04ce26a 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.cmd
+package org.apache.nlpcraft.probe.mgrs.cmd
 
 import java.io.Serializable
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.nlp.NCNlpSentence
-import org.nlpcraft.model.NCToken
-import org.nlpcraft.probe.mgrs.NCProbeMessage
-import org.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnrichmentManager
-import org.nlpcraft.probe.mgrs.conversation.NCConversationManager
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.nlp.NCNlpSentence
+import org.apache.nlpcraft.model.NCToken
+import org.apache.nlpcraft.probe.mgrs.NCProbeMessage
+import org.apache.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnrichmentManager
+import org.apache.nlpcraft.probe.mgrs.conversation.NCConversationManager
 
 import scala.collection.JavaConverters._
 
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala
index b9cd76f..ad69e71 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.conn
+package org.apache.nlpcraft.probe.mgrs.conn
 
 import java.io.{EOFException, IOException, InterruptedIOException}
 import java.net.{InetAddress, NetworkInterface, Socket}
@@ -25,15 +25,15 @@ import java.util.concurrent.atomic.AtomicInteger
 import java.util.{Properties, TimeZone}
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.crypto._
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.socket._
-import org.nlpcraft.common.version.NCVersion
-import org.nlpcraft.probe.mgrs.NCProbeMessage
-import org.nlpcraft.probe.mgrs.cmd.NCCommandManager
-import org.nlpcraft.probe.mgrs.model.NCModelManager
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.crypto._
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.socket._
+import org.apache.nlpcraft.common.version.NCVersion
+import org.apache.nlpcraft.probe.mgrs.NCProbeMessage
+import org.apache.nlpcraft.probe.mgrs.cmd.NCCommandManager
+import org.apache.nlpcraft.probe.mgrs.model.NCModelManager
 
 import scala.collection.mutable
 
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/conversation/NCConversationDescriptor.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationDescriptor.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/conversation/NCConversationDescriptor.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationDescriptor.scala
index 121d152..f1b7f70 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/conversation/NCConversationDescriptor.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationDescriptor.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.conversation
+package org.apache.nlpcraft.probe.mgrs.conversation
 
 import java.util
 import java.util.function.Predicate
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.common.opencensus.NCOpenCensusTrace
-import org.nlpcraft.model._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.common.opencensus.NCOpenCensusTrace
+import org.apache.nlpcraft.model._
 
 import scala.collection.JavaConverters._
 import scala.collection.mutable
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala
index d761c8b..8a857bb 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.conversation
+package org.apache.nlpcraft.probe.mgrs.conversation
 
 import java.util.concurrent.{Executors, ScheduledExecutorService, TimeUnit}
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 
 import scala.collection._
 import scala.concurrent.duration._
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
index b69bfcb..d23ca79 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.deploy
+package org.apache.nlpcraft.probe.mgrs.deploy
 
 import java.io._
 import java.util.jar.{JarInputStream ⇒ JIS}
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.model._
-import org.nlpcraft.model.factories.basic.NCBasicModelFactory
-import org.nlpcraft.model.impl.NCModelImpl
-import org.nlpcraft.model.intent.impl.{NCIntentScanner, NCIntentSolver}
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.factories.basic.NCBasicModelFactory
+import org.apache.nlpcraft.model.impl.NCModelImpl
+import org.apache.nlpcraft.model.intent.impl.{NCIntentScanner, NCIntentSolver}
 import resource.managed
 
 import scala.collection.JavaConverters._
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala
index 64e96de..6b1850d 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.dialogflow
+package org.apache.nlpcraft.probe.mgrs.dialogflow
 
 import java.util.concurrent.{Executors, ScheduledExecutorService, TimeUnit}
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common._
 
 import scala.collection.mutable
 import scala.collection.mutable.ArrayBuffer
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/lifecycle/NCLifecycleManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/lifecycle/NCLifecycleManager.scala
similarity index 90%
rename from src/main/scala/org/nlpcraft/probe/mgrs/lifecycle/NCLifecycleManager.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/lifecycle/NCLifecycleManager.scala
index 4a157af..54ca1ff 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/lifecycle/NCLifecycleManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/lifecycle/NCLifecycleManager.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.lifecycle
+package org.apache.nlpcraft.probe.mgrs.lifecycle
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.model._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.model._
 
 /**
   * Lifecycle component manager.
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/NCModelManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelManager.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/NCModelManager.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelManager.scala
index c948606..dc2e225 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/model/NCModelManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelManager.scala
@@ -15,20 +15,20 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.model
+package org.apache.nlpcraft.probe.mgrs.model
 
 import java.util.regex.{Pattern, PatternSyntaxException}
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.util.NCUtils._
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.common.makro.NCMacroParser
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.model._
-import org.nlpcraft.probe.mgrs.NCSynonymChunkKind._
-import org.nlpcraft.probe.mgrs.deploy._
-import org.nlpcraft.probe.mgrs.{NCModelDecorator, NCSynonym, NCSynonymChunk}
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.util.NCUtils._
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.common.makro.NCMacroParser
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.probe.mgrs.NCSynonymChunkKind._
+import org.apache.nlpcraft.probe.mgrs.deploy._
+import org.apache.nlpcraft.probe.mgrs.{NCModelDecorator, NCSynonym, NCSynonymChunk}
 
 import scala.collection.JavaConversions._
 import scala.collection.convert.DecorateAsScala
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/NCModelSynonymDsl.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDsl.scala
similarity index 91%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/NCModelSynonymDsl.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDsl.scala
index d6c9536..de8784e 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/model/NCModelSynonymDsl.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDsl.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.model
+package org.apache.nlpcraft.probe.mgrs.model
 
-import org.nlpcraft.model.NCToken
+import org.apache.nlpcraft.model.NCToken
 
 /**
  * Synonym DSL compilation unit.
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala
index 763f24f..6f3128e 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelSynonymDslCompiler.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.model
+package org.apache.nlpcraft.probe.mgrs.model
 
 import com.typesafe.scalalogging.LazyLogging
 import org.antlr.v4.runtime._
 import org.antlr.v4.runtime.tree._
 
-import org.nlpcraft.common._
-import org.nlpcraft.model.NCToken
-import org.nlpcraft.model.intent.utils.NCDslTokenPredicate
-import org.nlpcraft.probe.mgrs.model.antlr4._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.model.NCToken
+import org.apache.nlpcraft.model.intent.utils.NCDslTokenPredicate
+import org.apache.nlpcraft.probe.mgrs.model.antlr4._
 
 import scala.collection.JavaConverters._
 import scala.collection.mutable
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4
similarity index 100%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.interp b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.interp
similarity index 100%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.interp
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.interp
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.tokens b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.tokens
similarity index 100%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.tokens
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.tokens
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseListener.java b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseListener.java
similarity index 96%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseListener.java
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseListener.java
index b97a07a..aba1c34 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseListener.java
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseListener.java
@@ -1,5 +1,5 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
-package org.nlpcraft.probe.mgrs.model.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.probe.mgrs.model.antlr4;
 
 import org.antlr.v4.runtime.ParserRuleContext;
 import org.antlr.v4.runtime.tree.ErrorNode;
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseVisitor.java b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseVisitor.java
similarity index 94%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseVisitor.java
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseVisitor.java
index ae723fb..1d5dc31 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseVisitor.java
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslBaseVisitor.java
@@ -1,5 +1,5 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
-package org.nlpcraft.probe.mgrs.model.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.probe.mgrs.model.antlr4;
 import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.interp b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.interp
similarity index 100%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.interp
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.interp
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.java b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.java
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.java
index f9fac98..28fe97c 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.java
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.java
@@ -1,13 +1,10 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
-package org.nlpcraft.probe.mgrs.model.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.probe.mgrs.model.antlr4;
 import org.antlr.v4.runtime.Lexer;
 import org.antlr.v4.runtime.CharStream;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.TokenStream;
 import org.antlr.v4.runtime.*;
 import org.antlr.v4.runtime.atn.*;
 import org.antlr.v4.runtime.dfa.DFA;
-import org.antlr.v4.runtime.misc.*;
 
 @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
 public class NCSynonymDslLexer extends Lexer {
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.tokens b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.tokens
similarity index 100%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.tokens
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslLexer.tokens
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslListener.java b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslListener.java
similarity index 95%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslListener.java
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslListener.java
index 1dbb71e..7853f26 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslListener.java
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslListener.java
@@ -1,5 +1,5 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
-package org.nlpcraft.probe.mgrs.model.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.probe.mgrs.model.antlr4;
 import org.antlr.v4.runtime.tree.ParseTreeListener;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslParser.java b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslParser.java
similarity index 99%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslParser.java
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslParser.java
index 7bf0cf8..9e67ca5 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslParser.java
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslParser.java
@@ -1,13 +1,10 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
-package org.nlpcraft.probe.mgrs.model.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.probe.mgrs.model.antlr4;
 import org.antlr.v4.runtime.atn.*;
 import org.antlr.v4.runtime.dfa.DFA;
 import org.antlr.v4.runtime.*;
-import org.antlr.v4.runtime.misc.*;
 import org.antlr.v4.runtime.tree.*;
 import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
 
 @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
 public class NCSynonymDslParser extends Parser {
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslVisitor.java b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslVisitor.java
similarity index 93%
rename from src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslVisitor.java
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslVisitor.java
index 6675dc4..1680db2 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslVisitor.java
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDslVisitor.java
@@ -1,5 +1,5 @@
-// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
-package org.nlpcraft.probe.mgrs.model.antlr4;
+// Generated from /Users/nivanov/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/antlr4/NCSynonymDsl.g4 by ANTLR 4.8
+package org.apache.nlpcraft.probe.mgrs.model.antlr4;
 import org.antlr.v4.runtime.tree.ParseTreeVisitor;
 
 /**
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/NCProbeEnricher.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnricher.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/NCProbeEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnricher.scala
index a5e4678..0b538e5 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/NCProbeEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnricher.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp
+package org.apache.nlpcraft.probe.mgrs.nlp
 
 import java.io.Serializable
 import java.util
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.trace.Span
-import org.nlpcraft.common.nlp._
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.common.nlp._
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
 
 import scala.collection.JavaConverters._
 import scala.collection.{Map, Seq}
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
index a0280f7..12afc78 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp
+package org.apache.nlpcraft.probe.mgrs.nlp
 
 import java.io.Serializable
 import java.util
@@ -24,32 +24,32 @@ import java.util.concurrent.Executors
 import java.util.function.Predicate
 
 import io.opencensus.trace.{Span, Status}
-import org.nlpcraft.common.NCErrorCodes._
-import org.nlpcraft.common._
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.debug.NCLogHolder
-import org.nlpcraft.common.nlp.NCNlpSentence
-import org.nlpcraft.model._
-import org.nlpcraft.model.impl.{NCModelImpl, NCTokenLogger, NCVariantImpl}
-import org.nlpcraft.model.intent.impl.NCIntentSolverInput
-import org.nlpcraft.model.opencensus.stats.NCOpenCensusModelStats
-import org.nlpcraft.probe.embedded.NCEmbeddedResult
-import org.nlpcraft.probe.mgrs.NCProbeMessage
-import org.nlpcraft.probe.mgrs.conn.NCConnectionManager
-import org.nlpcraft.probe.mgrs.conversation.NCConversationManager
-import org.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
-import org.nlpcraft.probe.mgrs.model.NCModelManager
-import org.nlpcraft.probe.mgrs.nlp.enrichers.aggregation.NCAggregationEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.dictionary.NCDictionaryEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.limit.NCLimitEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.model.NCModelEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.post._
-import org.nlpcraft.probe.mgrs.nlp.enrichers.relation.NCRelationEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.sort.NCSortEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.stopword.NCStopWordEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.suspicious.NCSuspiciousNounsEnricher
-import org.nlpcraft.probe.mgrs.nlp.impl._
-import org.nlpcraft.probe.mgrs.nlp.validate._
+import org.apache.nlpcraft.common.NCErrorCodes._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.debug.NCLogHolder
+import org.apache.nlpcraft.common.nlp.NCNlpSentence
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.impl.{NCModelImpl, NCTokenLogger, NCVariantImpl}
+import org.apache.nlpcraft.model.intent.impl.NCIntentSolverInput
+import org.apache.nlpcraft.model.opencensus.stats.NCOpenCensusModelStats
+import org.apache.nlpcraft.probe.embedded.NCEmbeddedResult
+import org.apache.nlpcraft.probe.mgrs.NCProbeMessage
+import org.apache.nlpcraft.probe.mgrs.conn.NCConnectionManager
+import org.apache.nlpcraft.probe.mgrs.conversation.NCConversationManager
+import org.apache.nlpcraft.probe.mgrs.dialogflow.NCDialogFlowManager
+import org.apache.nlpcraft.probe.mgrs.model.NCModelManager
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.aggregation.NCAggregationEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.dictionary.NCDictionaryEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.limit.NCLimitEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.model.NCModelEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.post._
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.relation.NCRelationEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.sort.NCSortEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.stopword.NCStopWordEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.suspicious.NCSuspiciousNounsEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.impl._
+import org.apache.nlpcraft.probe.mgrs.nlp.validate._
 
 import scala.collection.JavaConverters._
 import scala.collection._
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/aggregation/NCAggregationEnricher.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/aggregation/NCAggregationEnricher.scala
similarity index 91%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/aggregation/NCAggregationEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/aggregation/NCAggregationEnricher.scala
index b9f4afd..868b540 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/aggregation/NCAggregationEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/aggregation/NCAggregationEnricher.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.enrichers.aggregation
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.aggregation
 
 import java.io.Serializable
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.makro.NCMacroParser
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
-import org.nlpcraft.common.{NCE, NCService}
-import org.nlpcraft.probe.mgrs.NCModelDecorator
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
+import org.apache.nlpcraft.common.makro.NCMacroParser
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
+import org.apache.nlpcraft.common.{NCE, NCService}
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
 
 import scala.collection.JavaConverters._
 import scala.collection.{Map, Seq, mutable}
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/dictionary/NCDictionaryEnricher.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/dictionary/NCDictionaryEnricher.scala
similarity index 87%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/dictionary/NCDictionaryEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/dictionary/NCDictionaryEnricher.scala
index d210408..c8dde78 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/dictionary/NCDictionaryEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/dictionary/NCDictionaryEnricher.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.enrichers.dictionary
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.dictionary
 
 import java.io.Serializable
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.nlp._
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.dict._
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.probe.mgrs.NCModelDecorator
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
+import org.apache.nlpcraft.common.nlp._
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.dict._
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
 
 import scala.collection.Map
 
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCLimitEnricher.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCLimitEnricher.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCLimitEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCLimitEnricher.scala
index 8d739c7..a5e00e4 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCLimitEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCLimitEnricher.scala
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.enrichers.limit
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.limit
 
 import java.io.Serializable
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.makro.NCMacroParser
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.numeric.{NCNumeric, NCNumericManager}
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
-import org.nlpcraft.common.{NCE, NCService}
-import org.nlpcraft.probe.mgrs.NCModelDecorator
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
+import org.apache.nlpcraft.common.makro.NCMacroParser
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.numeric.{NCNumeric, NCNumericManager}
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
+import org.apache.nlpcraft.common.{NCE, NCService}
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
 
 import scala.collection.JavaConverters._
 import scala.collection.{Map, Seq, mutable}
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
index 565294a..cfb2cc9 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.enrichers.model
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.model
 
 import java.io.Serializable
 import java.util
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.nlp.{NCNlpSentenceToken, _}
-import org.nlpcraft.model._
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
-import org.nlpcraft.probe.mgrs.nlp.enrichers.post.NCPostEnrichProcessor
-import org.nlpcraft.probe.mgrs.nlp.impl.NCRequestImpl
-import org.nlpcraft.probe.mgrs.{NCModelDecorator, NCSynonym}
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.nlp.{NCNlpSentenceToken, _}
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.post.NCPostEnrichProcessor
+import org.apache.nlpcraft.probe.mgrs.nlp.impl.NCRequestImpl
+import org.apache.nlpcraft.probe.mgrs.{NCModelDecorator, NCSynonym}
 
 import scala.collection.JavaConverters._
 import scala.collection.convert.DecorateAsScala
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/post/NCPostEnrichProcessor.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/post/NCPostEnrichProcessor.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/post/NCPostEnrichProcessor.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/post/NCPostEnrichProcessor.scala
index 4cca19e..1ecfb14 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/post/NCPostEnrichProcessor.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/post/NCPostEnrichProcessor.scala
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.enrichers.post
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.post
 
 import java.io.Serializable
 import java.util
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.trace.Span
-import org.nlpcraft.common.nlp.pos._
-import org.nlpcraft.common.nlp.{NCNlpSentence, _}
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.model.NCToken
-import org.nlpcraft.model.impl.NCTokenImpl
-import org.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.common.nlp.pos._
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, _}
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.model.NCToken
+import org.apache.nlpcraft.model.impl.NCTokenImpl
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
 
 import scala.collection.JavaConverters._
 import scala.collection._
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/relation/NCRelationEnricher.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/relation/NCRelationEnricher.scala
similarity index 94%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/relation/NCRelationEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/relation/NCRelationEnricher.scala
index 2284766..988cc18 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/relation/NCRelationEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/relation/NCRelationEnricher.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.enrichers.relation
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.relation
 
 import java.io.Serializable
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.makro.NCMacroParser
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
-import org.nlpcraft.common.{NCE, NCService}
-import org.nlpcraft.probe.mgrs.NCModelDecorator
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
+import org.apache.nlpcraft.common.makro.NCMacroParser
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
+import org.apache.nlpcraft.common.{NCE, NCService}
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
 
 import scala.collection.JavaConverters._
 import scala.collection.{Map, Seq, mutable}
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/sort/NCSortEnricher.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/sort/NCSortEnricher.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/sort/NCSortEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/sort/NCSortEnricher.scala
index efe4161..e9914f0 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/sort/NCSortEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/sort/NCSortEnricher.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.enrichers.sort
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.sort
 
 import java.io.Serializable
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.makro.NCMacroParser
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
-import org.nlpcraft.probe.mgrs.NCModelDecorator
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.makro.NCMacroParser
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
 
 import scala.collection.JavaConverters._
 import scala.collection.mutable.ArrayBuffer
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/stopword/NCStopWordEnricher.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/stopword/NCStopWordEnricher.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/stopword/NCStopWordEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/stopword/NCStopWordEnricher.scala
index fd51a94..5507996 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/stopword/NCStopWordEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/stopword/NCStopWordEnricher.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.enrichers.stopword
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.stopword
 
 import java.io.Serializable
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceToken}
-import org.nlpcraft.common.{NCE, NCService, U}
-import org.nlpcraft.probe.mgrs.NCModelDecorator
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceToken}
+import org.apache.nlpcraft.common.{NCE, NCService, U}
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
 
 import scala.annotation.tailrec
 import scala.collection.{Map, Seq}
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/suspicious/NCSuspiciousNounsEnricher.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/suspicious/NCSuspiciousNounsEnricher.scala
similarity index 87%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/suspicious/NCSuspiciousNounsEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/suspicious/NCSuspiciousNounsEnricher.scala
index 6e2e08f..0798d06 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/enrichers/suspicious/NCSuspiciousNounsEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/suspicious/NCSuspiciousNounsEnricher.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.enrichers.suspicious
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.suspicious
 
 import java.io.Serializable
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.{NCE, NCService}
-import org.nlpcraft.common.nlp._
-import org.nlpcraft.probe.mgrs.NCModelDecorator
-import org.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
+import org.apache.nlpcraft.common.{NCE, NCService}
+import org.apache.nlpcraft.common.nlp._
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.probe.mgrs.nlp.NCProbeEnricher
 
 import scala.collection.Map
 
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/impl/NCRequestImpl.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/impl/NCRequestImpl.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/impl/NCRequestImpl.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/impl/NCRequestImpl.scala
index 13328cc..633067e 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/impl/NCRequestImpl.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/impl/NCRequestImpl.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.impl
+package org.apache.nlpcraft.probe.mgrs.nlp.impl
 
 import java.util.Optional
 
-import org.nlpcraft.model._
-import org.nlpcraft.model.impl._
+import org.apache.nlpcraft.model._
+import org.apache.nlpcraft.model.impl._
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/validate/NCValidateException.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/validate/NCValidateException.scala
similarity index 91%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/validate/NCValidateException.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/validate/NCValidateException.scala
index c1e8492..b6a767a 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/validate/NCValidateException.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/validate/NCValidateException.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.validate
+package org.apache.nlpcraft.probe.mgrs.nlp.validate
 
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 
 /**
   * Pre/post enrichment validation exception.
diff --git a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/validate/NCValidateManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/validate/NCValidateManager.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/probe/mgrs/nlp/validate/NCValidateManager.scala
rename to src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/validate/NCValidateManager.scala
index a38dca2..2d2a68d 100644
--- a/src/main/scala/org/nlpcraft/probe/mgrs/nlp/validate/NCValidateManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/validate/NCValidateManager.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.probe.mgrs.nlp.validate
+package org.apache.nlpcraft.probe.mgrs.nlp.validate
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.trace.Span
 import org.apache.tika.langdetect.OptimaizeLangDetector
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.nlp.NCNlpSentence
-import org.nlpcraft.probe.mgrs.NCModelDecorator
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.nlp.NCNlpSentence
+import org.apache.nlpcraft.probe.mgrs.NCModelDecorator
 
 /**
  * Probe pre/post enrichment validator.
diff --git a/src/main/scala/org/nlpcraft/server/NCServer.scala b/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
similarity index 83%
rename from src/main/scala/org/nlpcraft/server/NCServer.scala
rename to src/main/scala/org/apache/nlpcraft/server/NCServer.scala
index ba10180..0f0c3b0 100644
--- a/src/main/scala/org/nlpcraft/server/NCServer.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
@@ -15,38 +15,38 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server
+package org.apache.nlpcraft.server
 
 import java.util.concurrent.CountDownLatch
 
 import com.typesafe.config.Config
 import com.typesafe.scalalogging.LazyLogging
-import org.nlpcraft.common._
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.dict.NCDictionaryManager
-import org.nlpcraft.common.nlp.numeric.NCNumericManager
-import org.nlpcraft.common.opencensus.NCOpenCensusTrace
-import org.nlpcraft.common.version._
-import org.nlpcraft.server.company.NCCompanyManager
-import org.nlpcraft.server.feedback.NCFeedbackManager
-import org.nlpcraft.server.geo.NCGeoManager
-import org.nlpcraft.server.ignite.{NCIgniteInstance, NCIgniteRunner}
-import org.nlpcraft.server.lifecycle.NCServerLifecycleManager
-import org.nlpcraft.server.nlp.core.NCNlpServerManager
-import org.nlpcraft.server.nlp.enrichers.NCServerEnrichmentManager
-import org.nlpcraft.server.nlp.preproc.NCPreProcessManager
-import org.nlpcraft.server.nlp.spell.NCSpellCheckManager
-import org.nlpcraft.server.nlp.synonym.NCSynonymManager
-import org.nlpcraft.server.nlp.wordnet.NCWordNetManager
-import org.nlpcraft.server.probe.NCProbeManager
-import org.nlpcraft.server.proclog.NCProcessLogManager
-import org.nlpcraft.server.query.NCQueryManager
-import org.nlpcraft.server.rest.NCRestManager
-import org.nlpcraft.server.sql.NCSqlManager
-import org.nlpcraft.server.tx.NCTxManager
-import org.nlpcraft.server.user.NCUserManager
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.dict.NCDictionaryManager
+import org.apache.nlpcraft.common.nlp.numeric.NCNumericManager
+import org.apache.nlpcraft.common.opencensus.NCOpenCensusTrace
+import org.apache.nlpcraft.common.version._
+import org.apache.nlpcraft.server.company.NCCompanyManager
+import org.apache.nlpcraft.server.feedback.NCFeedbackManager
+import org.apache.nlpcraft.server.geo.NCGeoManager
+import org.apache.nlpcraft.server.ignite.{NCIgniteInstance, NCIgniteRunner}
+import org.apache.nlpcraft.server.lifecycle.NCServerLifecycleManager
+import org.apache.nlpcraft.server.nlp.core.NCNlpServerManager
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnrichmentManager
+import org.apache.nlpcraft.server.nlp.preproc.NCPreProcessManager
+import org.apache.nlpcraft.server.nlp.spell.NCSpellCheckManager
+import org.apache.nlpcraft.server.nlp.synonym.NCSynonymManager
+import org.apache.nlpcraft.server.nlp.wordnet.NCWordNetManager
+import org.apache.nlpcraft.server.probe.NCProbeManager
+import org.apache.nlpcraft.server.proclog.NCProcessLogManager
+import org.apache.nlpcraft.server.query.NCQueryManager
+import org.apache.nlpcraft.server.rest.NCRestManager
+import org.apache.nlpcraft.server.sql.NCSqlManager
+import org.apache.nlpcraft.server.tx.NCTxManager
+import org.apache.nlpcraft.server.user.NCUserManager
 
 import scala.compat.Platform.currentTime
 import scala.util.control.Exception.{catching, ignoring}
diff --git a/src/main/scala/org/nlpcraft/server/apicodes/NCApiStatusCode.scala b/src/main/scala/org/apache/nlpcraft/server/apicodes/NCApiStatusCode.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/server/apicodes/NCApiStatusCode.scala
rename to src/main/scala/org/apache/nlpcraft/server/apicodes/NCApiStatusCode.scala
index 5d293d3..11167bb 100644
--- a/src/main/scala/org/nlpcraft/server/apicodes/NCApiStatusCode.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/apicodes/NCApiStatusCode.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.apicodes
+package org.apache.nlpcraft.server.apicodes
 
 import scala.language.implicitConversions
 
diff --git a/src/main/scala/org/nlpcraft/server/company/NCCompanyManager.scala b/src/main/scala/org/apache/nlpcraft/server/company/NCCompanyManager.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/company/NCCompanyManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/company/NCCompanyManager.scala
index ad3734f..b480b72 100644
--- a/src/main/scala/org/nlpcraft/server/company/NCCompanyManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/company/NCCompanyManager.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.company
+package org.apache.nlpcraft.server.company
 
 import io.opencensus.trace.Span
 import org.apache.ignite.{IgniteAtomicSequence, IgniteSemaphore}
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.mdo.NCCompanyMdo
-import org.nlpcraft.server.sql.{NCSql, NCSqlManager}
-import org.nlpcraft.server.user.NCUserManager
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.mdo.NCCompanyMdo
+import org.apache.nlpcraft.server.sql.{NCSql, NCSqlManager}
+import org.apache.nlpcraft.server.user.NCUserManager
 
 import scala.util.control.Exception._
 
diff --git a/src/main/scala/org/nlpcraft/server/feedback/NCFeedbackManager.scala b/src/main/scala/org/apache/nlpcraft/server/feedback/NCFeedbackManager.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/server/feedback/NCFeedbackManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/feedback/NCFeedbackManager.scala
index 4ffc998..590fb64 100644
--- a/src/main/scala/org/nlpcraft/server/feedback/NCFeedbackManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/feedback/NCFeedbackManager.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.feedback
+package org.apache.nlpcraft.server.feedback
 
 import io.opencensus.trace.Span
 import org.apache.ignite.IgniteAtomicSequence
-import org.nlpcraft.common.NCService
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.mdo.NCFeedbackMdo
-import org.nlpcraft.server.sql.{NCSql, NCSqlManager}
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.mdo.NCFeedbackMdo
+import org.apache.nlpcraft.server.sql.{NCSql, NCSqlManager}
 
 import scala.util.control.Exception._
 
diff --git a/src/main/scala/org/nlpcraft/server/geo/NCGeoManager.scala b/src/main/scala/org/apache/nlpcraft/server/geo/NCGeoManager.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/geo/NCGeoManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/geo/NCGeoManager.scala
index 63d95c8..ba3e75a 100644
--- a/src/main/scala/org/nlpcraft/server/geo/NCGeoManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/geo/NCGeoManager.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.geo
+package org.apache.nlpcraft.server.geo
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.nlp.dict.{NCDictionaryManager, NCDictionaryType}
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.server.json.NCJson
+import org.apache.nlpcraft.common.nlp.dict.{NCDictionaryManager, NCDictionaryType}
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.server.json.NCJson
 
 import scala.collection.{immutable, mutable}
 
diff --git a/src/main/scala/org/nlpcraft/server/geo/NCGeoModel.scala b/src/main/scala/org/apache/nlpcraft/server/geo/NCGeoModel.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/geo/NCGeoModel.scala
rename to src/main/scala/org/apache/nlpcraft/server/geo/NCGeoModel.scala
index 8f14711..967aa16 100644
--- a/src/main/scala/org/nlpcraft/server/geo/NCGeoModel.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/geo/NCGeoModel.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.geo
+package org.apache.nlpcraft.server.geo
 
 // GEO model which contains common GEO data.
 case class NCGeoModel(
diff --git a/src/main/scala/org/nlpcraft/server/geo/tools/NCGeoNamesGenerator.scala b/src/main/scala/org/apache/nlpcraft/server/geo/tools/NCGeoNamesGenerator.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/server/geo/tools/NCGeoNamesGenerator.scala
rename to src/main/scala/org/apache/nlpcraft/server/geo/tools/NCGeoNamesGenerator.scala
index 35ea155..5039533 100644
--- a/src/main/scala/org/nlpcraft/server/geo/tools/NCGeoNamesGenerator.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/geo/tools/NCGeoNamesGenerator.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.geo.tools
+package org.apache.nlpcraft.server.geo.tools
 
 import java.io.{File, PrintStream}
 
 import net.liftweb.json.Extraction._
 import net.liftweb.json._
-import org.nlpcraft.common.{NCE, U}
-import org.nlpcraft.server.geo.tools.unstats.{NCUnsdStatsContinent, NCUnsdStatsService}
+import org.apache.nlpcraft.common.{NCE, U}
+import org.apache.nlpcraft.server.geo.tools.unstats.{NCUnsdStatsContinent, NCUnsdStatsService}
 import resource._
 
 import scala.collection._
diff --git a/src/main/scala/org/nlpcraft/server/geo/tools/NCGeoStateNamesGenerator.scala b/src/main/scala/org/apache/nlpcraft/server/geo/tools/NCGeoStateNamesGenerator.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/geo/tools/NCGeoStateNamesGenerator.scala
rename to src/main/scala/org/apache/nlpcraft/server/geo/tools/NCGeoStateNamesGenerator.scala
index 58d3220..6ddbe23 100644
--- a/src/main/scala/org/nlpcraft/server/geo/tools/NCGeoStateNamesGenerator.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/geo/tools/NCGeoStateNamesGenerator.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.geo.tools
+package org.apache.nlpcraft.server.geo.tools
 
 import java.io.{File, PrintStream}
 
 import net.liftweb.json.Extraction._
 import net.liftweb.json._
-import org.nlpcraft.common.U
+import org.apache.nlpcraft.common.U
 import resource._
 
 /**
diff --git a/src/main/scala/org/nlpcraft/server/geo/tools/NCGeoSyntheticNamesGenerator.scala b/src/main/scala/org/apache/nlpcraft/server/geo/tools/NCGeoSyntheticNamesGenerator.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/server/geo/tools/NCGeoSyntheticNamesGenerator.scala
rename to src/main/scala/org/apache/nlpcraft/server/geo/tools/NCGeoSyntheticNamesGenerator.scala
index 29a74ca..f9a2b6f 100644
--- a/src/main/scala/org/nlpcraft/server/geo/tools/NCGeoSyntheticNamesGenerator.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/geo/tools/NCGeoSyntheticNamesGenerator.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.geo.tools
+package org.apache.nlpcraft.server.geo.tools
 
 import java.io.{File, PrintStream}
 
 import net.liftweb.json.Extraction._
 import net.liftweb.json._
-import org.nlpcraft.common.{NCE, U}
-import org.nlpcraft.common.nlp.dict.NCDictionaryManager
-import org.nlpcraft.server.geo._
-import org.nlpcraft.server.json.NCJson
+import org.apache.nlpcraft.common.{NCE, U}
+import org.apache.nlpcraft.common.nlp.dict.NCDictionaryManager
+import org.apache.nlpcraft.server.geo._
+import org.apache.nlpcraft.server.json.NCJson
 import resource._
 
 import scala.collection._
diff --git a/src/main/scala/org/nlpcraft/server/geo/tools/metro/NCGeoMetroGenerator.scala b/src/main/scala/org/apache/nlpcraft/server/geo/tools/metro/NCGeoMetroGenerator.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/geo/tools/metro/NCGeoMetroGenerator.scala
rename to src/main/scala/org/apache/nlpcraft/server/geo/tools/metro/NCGeoMetroGenerator.scala
index d167e09..da81246 100644
--- a/src/main/scala/org/nlpcraft/server/geo/tools/metro/NCGeoMetroGenerator.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/geo/tools/metro/NCGeoMetroGenerator.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.geo.tools.metro
+package org.apache.nlpcraft.server.geo.tools.metro
 
 import java.io.{File, PrintStream}
 
 import net.liftweb.json.Extraction._
 import net.liftweb.json._
-import org.nlpcraft.common.U
-import org.nlpcraft.server.geo.NCGeoSynonym
+import org.apache.nlpcraft.common.U
+import org.apache.nlpcraft.server.geo.NCGeoSynonym
 import resource._
 
 /**
diff --git a/src/main/scala/org/nlpcraft/server/geo/tools/metro/ga_metro.txt b/src/main/scala/org/apache/nlpcraft/server/geo/tools/metro/ga_metro.txt
similarity index 100%
rename from src/main/scala/org/nlpcraft/server/geo/tools/metro/ga_metro.txt
rename to src/main/scala/org/apache/nlpcraft/server/geo/tools/metro/ga_metro.txt
diff --git a/src/main/scala/org/nlpcraft/server/geo/tools/unstats/NCUnsdStatsGeo.scala b/src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/NCUnsdStatsGeo.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/server/geo/tools/unstats/NCUnsdStatsGeo.scala
rename to src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/NCUnsdStatsGeo.scala
index 3d1068e..315981d 100644
--- a/src/main/scala/org/nlpcraft/server/geo/tools/unstats/NCUnsdStatsGeo.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/NCUnsdStatsGeo.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.geo.tools.unstats
+package org.apache.nlpcraft.server.geo.tools.unstats
 
 import scala.collection.mutable
 
diff --git a/src/main/scala/org/nlpcraft/server/geo/tools/unstats/NCUnsdStatsService.scala b/src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/NCUnsdStatsService.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/geo/tools/unstats/NCUnsdStatsService.scala
rename to src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/NCUnsdStatsService.scala
index a0bbe15..a5839d1 100644
--- a/src/main/scala/org/nlpcraft/server/geo/tools/unstats/NCUnsdStatsService.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/NCUnsdStatsService.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.geo.tools.unstats
+package org.apache.nlpcraft.server.geo.tools.unstats
 
-import org.nlpcraft.common.U
+import org.apache.nlpcraft.common.U
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/server/geo/tools/unstats/codes.txt b/src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/codes.txt
similarity index 100%
rename from src/main/scala/org/nlpcraft/server/geo/tools/unstats/codes.txt
rename to src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/codes.txt
diff --git a/src/main/scala/org/nlpcraft/server/geo/tools/unstats/subcontinents.txt b/src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/subcontinents.txt
similarity index 100%
rename from src/main/scala/org/nlpcraft/server/geo/tools/unstats/subcontinents.txt
rename to src/main/scala/org/apache/nlpcraft/server/geo/tools/unstats/subcontinents.txt
diff --git a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteCacheStore.scala b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteCacheStore.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/ignite/NCIgniteCacheStore.scala
rename to src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteCacheStore.scala
index df34097..6f0a315 100644
--- a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteCacheStore.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteCacheStore.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.ignite
+package org.apache.nlpcraft.server.ignite
 
 import javax.cache.Cache.Entry
 import org.apache.ignite.cache.CacheAtomicityMode
@@ -23,8 +23,8 @@ import org.apache.ignite.cache.store.{CacheStoreAdapter, CacheStoreSession}
 import org.apache.ignite.configuration.CacheConfiguration
 import org.apache.ignite.resources.CacheStoreSessionResource
 import org.apache.ignite.{IgniteException, Ignition}
-import org.nlpcraft.common._
-import org.nlpcraft.server.tx.NCTxManager
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.server.tx.NCTxManager
 
 import scala.util.control.Exception._
 
diff --git a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteExceptions.scala b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteExceptions.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/server/ignite/NCIgniteExceptions.scala
rename to src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteExceptions.scala
index ea0bab1..34b70fc 100644
--- a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteExceptions.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteExceptions.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.ignite
+package org.apache.nlpcraft.server.ignite
 
 import java.sql.SQLException
 
 import com.typesafe.scalalogging.Logger
 import org.apache.ignite.IgniteException
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 
 import scala.util.control.Exception._
 
diff --git a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteHelpers.scala b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteHelpers.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/server/ignite/NCIgniteHelpers.scala
rename to src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteHelpers.scala
index 89aae9f..bfa55d1 100644
--- a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteHelpers.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteHelpers.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.ignite
+package org.apache.nlpcraft.server.ignite
 
 import java.util.UUID
 
diff --git a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteInstance.scala b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteInstance.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/server/ignite/NCIgniteInstance.scala
rename to src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteInstance.scala
index 6102d06..1311e89 100644
--- a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteInstance.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteInstance.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.ignite
+package org.apache.nlpcraft.server.ignite
 
 import org.apache.ignite.{Ignite, Ignition}
 
diff --git a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteRunner.scala b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteRunner.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/ignite/NCIgniteRunner.scala
rename to src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteRunner.scala
index ef0c48d..e2b8304 100644
--- a/src/main/scala/org/nlpcraft/server/ignite/NCIgniteRunner.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/ignite/NCIgniteRunner.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.ignite
+package org.apache.nlpcraft.server.ignite
 
 import com.typesafe.scalalogging.LazyLogging
 import org.apache.ignite.{IgniteException, Ignition}
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 import java.io.File
 
 import scala.sys.SystemProperties
diff --git a/src/main/scala/org/nlpcraft/server/json/NCJson.scala b/src/main/scala/org/apache/nlpcraft/server/json/NCJson.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/server/json/NCJson.scala
rename to src/main/scala/org/apache/nlpcraft/server/json/NCJson.scala
index 54644bd..922408b 100644
--- a/src/main/scala/org/nlpcraft/server/json/NCJson.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/json/NCJson.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.json
+package org.apache.nlpcraft.server.json
 
 import java.io.{IOException, _}
 import java.util.zip._
 
 import com.typesafe.scalalogging.LazyLogging
 import net.liftweb.json.{compact ⇒ liftCompact, pretty ⇒ liftPretty, render ⇒ liftRender, _}
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 
 import scala.annotation.tailrec
 import scala.language.implicitConversions
diff --git a/src/main/scala/org/nlpcraft/server/json/NCJsonException.scala b/src/main/scala/org/apache/nlpcraft/server/json/NCJsonException.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/json/NCJsonException.scala
rename to src/main/scala/org/apache/nlpcraft/server/json/NCJsonException.scala
index 7eb7629..466f070 100644
--- a/src/main/scala/org/nlpcraft/server/json/NCJsonException.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/json/NCJsonException.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.json
+package org.apache.nlpcraft.server.json
 
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 
 /**
  * Base JSON exception.
diff --git a/src/main/scala/org/nlpcraft/server/json/NCJsonLike.scala b/src/main/scala/org/apache/nlpcraft/server/json/NCJsonLike.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/server/json/NCJsonLike.scala
rename to src/main/scala/org/apache/nlpcraft/server/json/NCJsonLike.scala
index 56d3bb4..9cecf8e 100644
--- a/src/main/scala/org/nlpcraft/server/json/NCJsonLike.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/json/NCJsonLike.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.json
+package org.apache.nlpcraft.server.json
 
 /**
  * Trait for types that can be converted to JSON.
diff --git a/src/main/scala/org/nlpcraft/server/lifecycle/NCServerLifecycle.scala b/src/main/scala/org/apache/nlpcraft/server/lifecycle/NCServerLifecycle.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/lifecycle/NCServerLifecycle.scala
rename to src/main/scala/org/apache/nlpcraft/server/lifecycle/NCServerLifecycle.scala
index ec04919..266e8ab 100644
--- a/src/main/scala/org/nlpcraft/server/lifecycle/NCServerLifecycle.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/lifecycle/NCServerLifecycle.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.lifecycle
+package org.apache.nlpcraft.server.lifecycle
 
-import org.nlpcraft.common.NCE
+import org.apache.nlpcraft.common.NCE
 
 /**
   * Server lifecycle component.
diff --git a/src/main/scala/org/nlpcraft/server/lifecycle/NCServerLifecycleManager.scala b/src/main/scala/org/apache/nlpcraft/server/lifecycle/NCServerLifecycleManager.scala
similarity index 94%
rename from src/main/scala/org/nlpcraft/server/lifecycle/NCServerLifecycleManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/lifecycle/NCServerLifecycleManager.scala
index add8df7..24d95b8 100644
--- a/src/main/scala/org/nlpcraft/server/lifecycle/NCServerLifecycleManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/lifecycle/NCServerLifecycleManager.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.lifecycle
+package org.apache.nlpcraft.server.lifecycle
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.common.config.NCConfigurable
 
 /**
   * Lifecycle components manager.
diff --git a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCBaseTraceExporter.scala b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCBaseTraceExporter.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCBaseTraceExporter.scala
rename to src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCBaseTraceExporter.scala
index 5cfdd99..854ad44 100644
--- a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCBaseTraceExporter.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCBaseTraceExporter.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.lifecycle.opencensus
+package org.apache.nlpcraft.server.lifecycle.opencensus
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.trace.Tracing
 import io.opencensus.trace.samplers.Samplers
-import org.nlpcraft.server.lifecycle.NCServerLifecycle
+import org.apache.nlpcraft.server.lifecycle.NCServerLifecycle
 
 /**
   * Base class for trace exporters.
diff --git a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCJaegerExporter.scala b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCJaegerExporter.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCJaegerExporter.scala
rename to src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCJaegerExporter.scala
index 901918b..085b484 100644
--- a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCJaegerExporter.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCJaegerExporter.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.lifecycle.opencensus
+package org.apache.nlpcraft.server.lifecycle.opencensus
 
 import io.opencensus.exporter.trace.jaeger.{JaegerExporterConfiguration, JaegerTraceExporter}
-import org.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.config.NCConfigurable
 
 /**
   * Jaeger OpenCensus trace exporter.
diff --git a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCPrometheusExporter.scala b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCPrometheusExporter.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCPrometheusExporter.scala
rename to src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCPrometheusExporter.scala
index 26774a4..fbad821 100644
--- a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCPrometheusExporter.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCPrometheusExporter.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.lifecycle.opencensus
+package org.apache.nlpcraft.server.lifecycle.opencensus
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.exporter.stats.prometheus.{PrometheusStatsCollector, PrometheusStatsConfiguration}
 import io.prometheus.client.exporter.HTTPServer
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.server.lifecycle.NCServerLifecycle
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.server.lifecycle.NCServerLifecycle
 
 /**
   * Prometheus OpenCensus stats exporter.
diff --git a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCStackdriverStatsExporter.scala b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCStackdriverStatsExporter.scala
similarity index 90%
rename from src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCStackdriverStatsExporter.scala
rename to src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCStackdriverStatsExporter.scala
index 64e5e20..16fe7b9 100644
--- a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCStackdriverStatsExporter.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCStackdriverStatsExporter.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.lifecycle.opencensus
+package org.apache.nlpcraft.server.lifecycle.opencensus
 
 import java.io.IOException
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.exporter.stats.stackdriver.{StackdriverStatsConfiguration, StackdriverStatsExporter}
-import org.nlpcraft.common.NCE
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.server.lifecycle.NCServerLifecycle
+import org.apache.nlpcraft.common.NCE
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.server.lifecycle.NCServerLifecycle
 
 /**
   * Google Stackdriver OpenCensus stats exporter.
diff --git a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCStackdriverTraceExporter.scala b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCStackdriverTraceExporter.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCStackdriverTraceExporter.scala
rename to src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCStackdriverTraceExporter.scala
index 69ef462..d38473e 100644
--- a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCStackdriverTraceExporter.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCStackdriverTraceExporter.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.lifecycle.opencensus
+package org.apache.nlpcraft.server.lifecycle.opencensus
 
 import java.io.IOException
 
 import io.opencensus.exporter.trace.stackdriver.{StackdriverTraceConfiguration, StackdriverTraceExporter}
-import org.nlpcraft.common.NCE
-import org.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.NCE
+import org.apache.nlpcraft.common.config.NCConfigurable
 
 /**
   * Google Stackdriver OpenCensus trace exporter.
diff --git a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCZipkinExporter.scala b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCZipkinExporter.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCZipkinExporter.scala
rename to src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCZipkinExporter.scala
index 09e7362..6104b1b 100644
--- a/src/main/scala/org/nlpcraft/server/lifecycle/opencensus/NCZipkinExporter.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/lifecycle/opencensus/NCZipkinExporter.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.lifecycle.opencensus
+package org.apache.nlpcraft.server.lifecycle.opencensus
 
 import io.opencensus.exporter.trace.zipkin.{ZipkinExporterConfiguration, ZipkinTraceExporter}
-import org.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.config.NCConfigurable
 
 /**
   * Zipkin OpenCensus exporter.
diff --git a/src/main/scala/org/nlpcraft/server/mdo/NCCompanyMdo.scala b/src/main/scala/org/apache/nlpcraft/server/mdo/NCCompanyMdo.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/mdo/NCCompanyMdo.scala
rename to src/main/scala/org/apache/nlpcraft/server/mdo/NCCompanyMdo.scala
index b33099c..c4aa5a8 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/NCCompanyMdo.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/NCCompanyMdo.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo
+package org.apache.nlpcraft.server.mdo
 
 import java.sql.Timestamp
 
-import org.nlpcraft.server.mdo.impl._
-import org.nlpcraft.server.sql.NCSql.Implicits.RsParser
+import org.apache.nlpcraft.server.mdo.impl._
+import org.apache.nlpcraft.server.sql.NCSql.Implicits.RsParser
 
 /**
   * Company MDO.
diff --git a/src/main/scala/org/nlpcraft/server/mdo/NCFeedbackMdo.scala b/src/main/scala/org/apache/nlpcraft/server/mdo/NCFeedbackMdo.scala
similarity index 90%
rename from src/main/scala/org/nlpcraft/server/mdo/NCFeedbackMdo.scala
rename to src/main/scala/org/apache/nlpcraft/server/mdo/NCFeedbackMdo.scala
index 08054f9..a2782de 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/NCFeedbackMdo.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/NCFeedbackMdo.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo
+package org.apache.nlpcraft.server.mdo
 
 import java.sql.Timestamp
 
-import org.nlpcraft.server.mdo.impl._
-import org.nlpcraft.server.sql.NCSql.Implicits.RsParser
+import org.apache.nlpcraft.server.mdo.impl._
+import org.apache.nlpcraft.server.sql.NCSql.Implicits.RsParser
 
 /**
   * Feedback MDO.
diff --git a/src/main/scala/org/nlpcraft/server/mdo/NCProbeMdo.scala b/src/main/scala/org/apache/nlpcraft/server/mdo/NCProbeMdo.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/mdo/NCProbeMdo.scala
rename to src/main/scala/org/apache/nlpcraft/server/mdo/NCProbeMdo.scala
index f84272c..647ee43 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/NCProbeMdo.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/NCProbeMdo.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo
+package org.apache.nlpcraft.server.mdo
 
 import java.sql.Timestamp
 
-import org.nlpcraft.server.mdo.impl._
+import org.apache.nlpcraft.server.mdo.impl._
 
 /**
   * Probe MDO.
diff --git a/src/main/scala/org/nlpcraft/server/mdo/NCProbeModelMdo.scala b/src/main/scala/org/apache/nlpcraft/server/mdo/NCProbeModelMdo.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/server/mdo/NCProbeModelMdo.scala
rename to src/main/scala/org/apache/nlpcraft/server/mdo/NCProbeModelMdo.scala
index d3bec31..1510c4b 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/NCProbeModelMdo.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/NCProbeModelMdo.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo
+package org.apache.nlpcraft.server.mdo
 
-import org.nlpcraft.server.mdo.impl._
+import org.apache.nlpcraft.server.mdo.impl._
 
 /**
   * Probe model MDO.
diff --git a/src/main/scala/org/nlpcraft/server/mdo/NCQueryStateMdo.scala b/src/main/scala/org/apache/nlpcraft/server/mdo/NCQueryStateMdo.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/server/mdo/NCQueryStateMdo.scala
rename to src/main/scala/org/apache/nlpcraft/server/mdo/NCQueryStateMdo.scala
index 2d30b37..3fd3029 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/NCQueryStateMdo.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/NCQueryStateMdo.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo
+package org.apache.nlpcraft.server.mdo
 
 import java.sql.Timestamp
 
-import org.nlpcraft.server.sql.NCSql.Implicits.RsParser
-import org.nlpcraft.server.mdo.impl._
+import org.apache.nlpcraft.server.sql.NCSql.Implicits.RsParser
+import org.apache.nlpcraft.server.mdo.impl._
 
 /**
   * Query state MDO.
diff --git a/src/main/scala/org/nlpcraft/server/mdo/NCUserMdo.scala b/src/main/scala/org/apache/nlpcraft/server/mdo/NCUserMdo.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/server/mdo/NCUserMdo.scala
rename to src/main/scala/org/apache/nlpcraft/server/mdo/NCUserMdo.scala
index cd007c7..9d7be9d 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/NCUserMdo.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/NCUserMdo.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo
+package org.apache.nlpcraft.server.mdo
 
 import java.sql.Timestamp
 
-import org.nlpcraft.common._
-import org.nlpcraft.server.sql.NCSql.Implicits.RsParser
-import org.nlpcraft.server.mdo.impl._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.server.sql.NCSql.Implicits.RsParser
+import org.apache.nlpcraft.server.mdo.impl._
 
 /**
   * User MDO.
diff --git a/src/main/scala/org/nlpcraft/server/mdo/NCUserPropertyMdo.scala b/src/main/scala/org/apache/nlpcraft/server/mdo/NCUserPropertyMdo.scala
similarity index 90%
rename from src/main/scala/org/nlpcraft/server/mdo/NCUserPropertyMdo.scala
rename to src/main/scala/org/apache/nlpcraft/server/mdo/NCUserPropertyMdo.scala
index 4b5e77a..f1813cd 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/NCUserPropertyMdo.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/NCUserPropertyMdo.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo
+package org.apache.nlpcraft.server.mdo
 
 import java.sql.Timestamp
 
-import org.nlpcraft.server.mdo.impl._
-import org.nlpcraft.server.sql.NCSql.Implicits.RsParser
+import org.apache.nlpcraft.server.mdo.impl._
+import org.apache.nlpcraft.server.sql.NCSql.Implicits.RsParser
 
 /**
   * User property MDO.
diff --git a/src/main/scala/org/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala b/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala
rename to src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala
index 12d48ab..6e28258 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo.impl
+package org.apache.nlpcraft.server.mdo.impl
 
 import java.lang.reflect.{Constructor, Method}
 import java.sql.ResultSet
 
 import com.thoughtworks.paranamer.{AnnotationParanamer, BytecodeReadingParanamer, CachingParanamer}
-import org.nlpcraft.common.ascii.{NCAsciiLike, NCAsciiTable}
-import org.nlpcraft.common.crypto.NCCipher
-import org.nlpcraft.server.sql.NCSql.Implicits.RsParser
-import org.nlpcraft.server.json.{NCJson, NCJsonLike}
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common.ascii.{NCAsciiLike, NCAsciiTable}
+import org.apache.nlpcraft.common.crypto.NCCipher
+import org.apache.nlpcraft.server.sql.NCSql.Implicits.RsParser
+import org.apache.nlpcraft.server.json.{NCJson, NCJsonLike}
+import org.apache.nlpcraft.common._
 
 import scala.collection.mutable
 import scala.language.existentials
diff --git a/src/main/scala/org/nlpcraft/server/mdo/impl/NCMdoEntity.java b/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCMdoEntity.java
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/mdo/impl/NCMdoEntity.java
rename to src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCMdoEntity.java
index 5dd06ae..1c41114 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/impl/NCMdoEntity.java
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCMdoEntity.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo.impl;
+package org.apache.nlpcraft.server.mdo.impl;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
diff --git a/src/main/scala/org/nlpcraft/server/mdo/impl/NCMdoField.java b/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCMdoField.java
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/mdo/impl/NCMdoField.java
rename to src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCMdoField.java
index 993ad3c..3a43495 100644
--- a/src/main/scala/org/nlpcraft/server/mdo/impl/NCMdoField.java
+++ b/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCMdoField.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.mdo.impl;
+package org.apache.nlpcraft.server.mdo.impl;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/NCNlpNerEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpNerEnricher.scala
similarity index 89%
rename from src/main/scala/org/nlpcraft/server/nlp/core/NCNlpNerEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpNerEnricher.scala
index 27e09a5..7fc6091 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/NCNlpNerEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpNerEnricher.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core
+package org.apache.nlpcraft.server.nlp.core
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.nlp.NCNlpSentence
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.nlp.NCNlpSentence
 
 /**
   * NLP NER enricher.
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/NCNlpParser.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpParser.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/nlp/core/NCNlpParser.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpParser.scala
index f1d706b..6f95434 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/NCNlpParser.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpParser.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core
+package org.apache.nlpcraft.server.nlp.core
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.NCService
 
 import scala.collection.Seq
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/NCNlpServerManager.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpServerManager.scala
similarity index 81%
rename from src/main/scala/org/nlpcraft/server/nlp/core/NCNlpServerManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpServerManager.scala
index 4ea8a35..b2ab86b 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/NCNlpServerManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpServerManager.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core
+package org.apache.nlpcraft.server.nlp.core
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.{NCE, NCService, _}
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.{NCE, NCService, _}
 
 import scala.collection.Seq
 
@@ -68,8 +68,8 @@ object NCNlpServerManager extends NCService {
         
         parser =
             NCNlpCoreManager.getEngine match {
-                case "stanford" ⇒ U.mkObject("org.nlpcraft.server.nlp.core.stanford.NCStanfordParser")
-                case "opennlp" ⇒ U.mkObject("org.nlpcraft.server.nlp.core.opennlp.NCOpenNlpParser")
+                case "stanford" ⇒ U.mkObject("org.apache.nlpcraft.server.nlp.core.stanford.NCStanfordParser")
+                case "opennlp" ⇒ U.mkObject("org.apache.nlpcraft.server.nlp.core.opennlp.NCOpenNlpParser")
 
                 case _ ⇒ throw new AssertionError(s"Unexpected NLP engine: ${NCNlpCoreManager.getEngine}")
             }
@@ -79,25 +79,25 @@ object NCNlpServerManager extends NCService {
         val m = collection.mutable.HashMap.empty[String, NCNlpNerEnricher]
 
         if (isGoogleNer) {
-            m += "google" → U.mkObject("org.nlpcraft.server.nlp.core.google.NCGoogleNerEnricher")
+            m += "google" → U.mkObject("org.apache.nlpcraft.server.nlp.core.google.NCGoogleNerEnricher")
             
             logger.info("Google Natural Language NER started.")
         }
         
         if (isOpenNer) {
-            m += "opennlp" → U.mkObject("org.nlpcraft.server.nlp.core.opennlp.NCOpenNlpNerEnricher")
+            m += "opennlp" → U.mkObject("org.apache.nlpcraft.server.nlp.core.opennlp.NCOpenNlpNerEnricher")
         
             logger.info("OpenNLP NER started.")
         }
         
         if (isStanfordNer) {
-            m += "stanford" → U.mkObject("org.nlpcraft.server.nlp.core.stanford.NCStanfordNerEnricher")
+            m += "stanford" → U.mkObject("org.apache.nlpcraft.server.nlp.core.stanford.NCStanfordNerEnricher")
     
             logger.info("Stanford CoreNLP NER started.")
         }
 
         if (isSpacyNer) {
-            m += "spacy" → U.mkObject("org.nlpcraft.server.nlp.core.spacy.NCSpaCyNerEnricher")
+            m += "spacy" → U.mkObject("org.apache.nlpcraft.server.nlp.core.spacy.NCSpaCyNerEnricher")
 
             logger.info("spaCy NER started.")
         }
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/NCNlpWord.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpWord.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/server/nlp/core/NCNlpWord.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpWord.scala
index 2aaf36f..765e81b 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/NCNlpWord.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpWord.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core
+package org.apache.nlpcraft.server.nlp.core
 
 /**
   * Word information holder.
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/google/NCGoogleNerEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/google/NCGoogleNerEnricher.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/nlp/core/google/NCGoogleNerEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/google/NCGoogleNerEnricher.scala
index 79ce093..d30c98a 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/google/NCGoogleNerEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/google/NCGoogleNerEnricher.scala
@@ -1,11 +1,11 @@
-package org.nlpcraft.server.nlp.core.google
+package org.apache.nlpcraft.server.nlp.core.google
 
 import com.google.cloud.language.v1.{AnalyzeEntitiesRequest, AnalyzeEntitiesResponse, Document, EncodingType, Entity, EntityMention, LanguageServiceClient}
 import io.opencensus.trace.Span
-import org.nlpcraft.common.{NCE, NCService}
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote}
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.nlp.core.NCNlpNerEnricher
+import org.apache.nlpcraft.common.{NCE, NCService}
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote}
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.nlp.core.NCNlpNerEnricher
 
 import scala.collection.JavaConverters._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala
index 1107917..5b4e96c 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core.opennlp
+package org.apache.nlpcraft.server.nlp.core.opennlp
 
 import java.io.BufferedInputStream
 
 import io.opencensus.trace.Span
 import opennlp.tools.namefind.{NameFinderME, TokenNameFinderModel}
 import org.apache.ignite.IgniteCache
-import org.nlpcraft.common.nlp.core.opennlp.NCOpenNlpTokenizer
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote}
-import org.nlpcraft.common.{NCService, U}
-import org.nlpcraft.server.ignite.NCIgniteHelpers._
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.nlp.core.NCNlpNerEnricher
+import org.apache.nlpcraft.common.nlp.core.opennlp.NCOpenNlpTokenizer
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote}
+import org.apache.nlpcraft.common.{NCService, U}
+import org.apache.nlpcraft.server.ignite.NCIgniteHelpers._
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.nlp.core.NCNlpNerEnricher
 import resource.managed
 
 import scala.util.control.Exception.catching
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala
index b8dced2..ff5b4db 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core.opennlp
+package org.apache.nlpcraft.server.nlp.core.opennlp
 
 import java.io.BufferedInputStream
 
@@ -23,12 +23,12 @@ import io.opencensus.trace.Span
 import opennlp.tools.lemmatizer.DictionaryLemmatizer
 import opennlp.tools.postag.{POSModel, POSTagger, POSTaggerME}
 import org.apache.ignite.IgniteCache
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.core.opennlp.NCOpenNlpTokenizer
-import org.nlpcraft.common.{NCService, U}
-import org.nlpcraft.server.ignite.NCIgniteHelpers._
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.nlp.core.{NCNlpParser, NCNlpWord}
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.core.opennlp.NCOpenNlpTokenizer
+import org.apache.nlpcraft.common.{NCService, U}
+import org.apache.nlpcraft.server.ignite.NCIgniteHelpers._
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.nlp.core.{NCNlpParser, NCNlpWord}
 import resource.managed
 
 import scala.util.control.Exception.catching
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala
index 46affe8..b01c596 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core.spacy
+package org.apache.nlpcraft.server.nlp.core.spacy
 
 import java.net.URLEncoder
 import java.util
@@ -29,11 +29,11 @@ import akka.http.scaladsl.model._
 import akka.http.scaladsl.unmarshalling.Unmarshal
 import akka.stream.ActorMaterializer
 import io.opencensus.trace.Span
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote}
-import org.nlpcraft.common.{NCE, NCService}
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.nlp.core.NCNlpNerEnricher
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote}
+import org.apache.nlpcraft.common.{NCE, NCService}
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.nlp.core.NCNlpNerEnricher
 import spray.json.DefaultJsonProtocol._
 import spray.json.RootJsonFormat
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordAnnotator.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordAnnotator.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordAnnotator.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordAnnotator.scala
index 0a2875d..6c4480b 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordAnnotator.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordAnnotator.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core.stanford
+package org.apache.nlpcraft.server.nlp.core.stanford
 
 import java.util
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordCoreManager.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordCoreManager.scala
similarity index 91%
rename from src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordCoreManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordCoreManager.scala
index a41417a..0b8a61a 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordCoreManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordCoreManager.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core.stanford
+package org.apache.nlpcraft.server.nlp.core.stanford
 
 import java.util.Properties
 
 import edu.stanford.nlp.pipeline.{CoreDocument, StanfordCoreNLP}
 import io.opencensus.trace.Span
 import org.apache.ignite.IgniteCache
-import org.nlpcraft.common.NCService
-import org.nlpcraft.server.ignite.NCIgniteHelpers._
-import org.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.server.ignite.NCIgniteHelpers._
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
 
 import scala.util.control.Exception.catching
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordNerEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordNerEnricher.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordNerEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordNerEnricher.scala
index f86b2c7..09131e6 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordNerEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordNerEnricher.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core.stanford
+package org.apache.nlpcraft.server.nlp.core.stanford
 
 import edu.stanford.nlp.ling.CoreAnnotations.NormalizedNamedEntityTagAnnotation
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote}
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.nlp.core.NCNlpNerEnricher
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote}
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.nlp.core.NCNlpNerEnricher
 
 import scala.collection.JavaConverters._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordParser.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordParser.scala
similarity index 90%
rename from src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordParser.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordParser.scala
index 223bd5a..063fa61 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordParser.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordParser.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core.stanford
+package org.apache.nlpcraft.server.nlp.core.stanford
 
 import edu.stanford.nlp.ling.CoreAnnotations.{SentencesAnnotation, TokensAnnotation}
 import edu.stanford.nlp.ling.CoreLabel
 import edu.stanford.nlp.util.{ArrayCoreMap, CoreMap}
 import io.opencensus.trace.Span
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.{NCE, NCService}
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.nlp.core.{NCNlpParser, NCNlpWord}
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.{NCE, NCService}
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.nlp.core.{NCNlpParser, NCNlpWord}
 
 import scala.collection.JavaConverters._
 import scala.collection.Seq
diff --git a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordTokenizer.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordTokenizer.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordTokenizer.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordTokenizer.scala
index 098752e..5d3107d 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/core/stanford/NCStanfordTokenizer.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/stanford/NCStanfordTokenizer.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.core.stanford
+package org.apache.nlpcraft.server.nlp.core.stanford
 
 import edu.stanford.nlp.ling.CoreLabel
 import edu.stanford.nlp.process.{AbstractTokenizer, CoreLabelTokenFactory}
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
 
 import NCStanfordTokenizer._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/NCServerEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/NCServerEnricher.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/NCServerEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/NCServerEnricher.scala
index ec42f79..792b2c6 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/NCServerEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/NCServerEnricher.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers
+package org.apache.nlpcraft.server.nlp.enrichers
 
 import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.nlp._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.nlp._
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/NCServerEnrichmentManager.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/NCServerEnrichmentManager.scala
similarity index 90%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/NCServerEnrichmentManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/NCServerEnrichmentManager.scala
index 8313b7e..295a8f2 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/NCServerEnrichmentManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/NCServerEnrichmentManager.scala
@@ -15,25 +15,25 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers
+package org.apache.nlpcraft.server.nlp.enrichers
 
 import io.opencensus.trace.Span
 import org.apache.ignite.IgniteCache
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.server.ignite.NCIgniteHelpers._
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.nlp.core.{NCNlpNerEnricher, NCNlpServerManager}
-import org.nlpcraft.server.nlp.enrichers.basenlp.NCBaseNlpEnricher
-import org.nlpcraft.server.nlp.enrichers.coordinate.NCCoordinatesEnricher
-import org.nlpcraft.server.nlp.enrichers.date.NCDateEnricher
-import org.nlpcraft.server.nlp.enrichers.geo.NCGeoEnricher
-import org.nlpcraft.server.nlp.enrichers.numeric.NCNumericEnricher
-import org.nlpcraft.server.nlp.enrichers.quote.NCQuoteEnricher
-import org.nlpcraft.server.nlp.enrichers.stopword.NCStopWordEnricher
-import org.nlpcraft.server.nlp.preproc.NCPreProcessManager
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.server.ignite.NCIgniteHelpers._
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.nlp.core.{NCNlpNerEnricher, NCNlpServerManager}
+import org.apache.nlpcraft.server.nlp.enrichers.basenlp.NCBaseNlpEnricher
+import org.apache.nlpcraft.server.nlp.enrichers.coordinate.NCCoordinatesEnricher
+import org.apache.nlpcraft.server.nlp.enrichers.date.NCDateEnricher
+import org.apache.nlpcraft.server.nlp.enrichers.geo.NCGeoEnricher
+import org.apache.nlpcraft.server.nlp.enrichers.numeric.NCNumericEnricher
+import org.apache.nlpcraft.server.nlp.enrichers.quote.NCQuoteEnricher
+import org.apache.nlpcraft.server.nlp.enrichers.stopword.NCStopWordEnricher
+import org.apache.nlpcraft.server.nlp.preproc.NCPreProcessManager
 
 import scala.collection.Seq
 import scala.util.control.Exception.catching
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/basenlp/NCBaseNlpEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/basenlp/NCBaseNlpEnricher.scala
similarity index 92%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/basenlp/NCBaseNlpEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/basenlp/NCBaseNlpEnricher.scala
index 641cd46..8d6f7b5 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/basenlp/NCBaseNlpEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/basenlp/NCBaseNlpEnricher.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.basenlp
+package org.apache.nlpcraft.server.nlp.enrichers.basenlp
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.nlp.pos.NCPennTreebank
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
-import org.nlpcraft.server.nlp.core.{NCNlpParser, NCNlpServerManager}
-import org.nlpcraft.server.nlp.enrichers.NCServerEnricher
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.nlp.pos.NCPennTreebank
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
+import org.apache.nlpcraft.server.nlp.core.{NCNlpParser, NCNlpServerManager}
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnricher
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/coordinate/NCCoordinatesEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/coordinate/NCCoordinatesEnricher.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/coordinate/NCCoordinatesEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/coordinate/NCCoordinatesEnricher.scala
index bb4c374..685f4f1 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/coordinate/NCCoordinatesEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/coordinate/NCCoordinatesEnricher.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.coordinate
+package org.apache.nlpcraft.server.nlp.enrichers.coordinate
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.makro.NCMacroParser
-import org.nlpcraft.common.nlp._
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.numeric._
-import org.nlpcraft.server.nlp.enrichers.NCServerEnricher
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.makro.NCMacroParser
+import org.apache.nlpcraft.common.nlp._
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.numeric._
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnricher
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateConstants.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateConstants.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateConstants.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateConstants.scala
index 4d12909..ac72af6 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateConstants.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateConstants.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.date
+package org.apache.nlpcraft.server.nlp.enrichers.date
 
-import org.nlpcraft.common.makro.NCMacroParser
-import org.nlpcraft.server.nlp.enrichers.date.NCDateFormatType._
+import org.apache.nlpcraft.common.makro.NCMacroParser
+import org.apache.nlpcraft.server.nlp.enrichers.date.NCDateFormatType._
 
 /**
  * Date enricher constants.
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateEnricher.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateEnricher.scala
index f632572..8b8bce1 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateEnricher.scala
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.date
+package org.apache.nlpcraft.server.nlp.enrichers.date
 
 import java.util
 import java.util.{Calendar ⇒ C}
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.server.nlp.enrichers.NCServerEnricher
-import org.nlpcraft.server.nlp.enrichers.date.NCDateConstants._
-import org.nlpcraft.server.nlp.enrichers.date.NCDateFormatType._
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnricher
+import org.apache.nlpcraft.server.nlp.enrichers.date.NCDateConstants._
+import org.apache.nlpcraft.server.nlp.enrichers.date.NCDateFormatType._
 
 import scala.collection.JavaConverters._
 import scala.collection.immutable.Iterable
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateFormatType.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateFormatType.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateFormatType.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateFormatType.scala
index 583e29a..363ef60 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateFormatType.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateFormatType.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.date
+package org.apache.nlpcraft.server.nlp.enrichers.date
 
 /**
   * Date format type.
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateParser.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateParser.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateParser.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateParser.scala
index 652055a..3abfa49 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateParser.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateParser.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.date
+package org.apache.nlpcraft.server.nlp.enrichers.date
 
 import java.util.{Locale, Calendar ⇒ C}
 import scala.collection.JavaConverters._
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateRange.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateRange.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateRange.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateRange.scala
index c41ca5b..3a2d247 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/NCDateRange.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/NCDateRange.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.date
+package org.apache.nlpcraft.server.nlp.enrichers.date
 
 import java.text.SimpleDateFormat
 import java.time._
@@ -58,7 +58,7 @@ object NCDateRange {
         if (l == limit) dflt else FMT.format(new java.util.Date(l))
 }
 
-import org.nlpcraft.server.nlp.enrichers.date.NCDateRange._
+import org.apache.nlpcraft.server.nlp.enrichers.date.NCDateRange._
 
 /**
   * Date range data holder.
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/tools/NCDateGenerator.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/tools/NCDateGenerator.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/date/tools/NCDateGenerator.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/tools/NCDateGenerator.scala
index 2ea8483..611b98d 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/date/tools/NCDateGenerator.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/date/tools/NCDateGenerator.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.date.tools
+package org.apache.nlpcraft.server.nlp.enrichers.date.tools
 
 import java.text.{DateFormat, SimpleDateFormat}
 import java.util.{Date, Locale, Calendar ⇒ C}
 
-import org.nlpcraft.common._
-import org.nlpcraft.common.nlp.numeric.NCNumericGenerator
-import org.nlpcraft.server.nlp.enrichers.date.NCDateConstants._
-import org.nlpcraft.server.nlp.enrichers.date.NCDateFormatType._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.nlp.numeric.NCNumericGenerator
+import org.apache.nlpcraft.server.nlp.enrichers.date.NCDateConstants._
+import org.apache.nlpcraft.server.nlp.enrichers.date.NCDateFormatType._
 
 import scala.collection._
 import scala.collection.mutable.{LinkedHashMap ⇒ LHM}
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/geo/NCGeoEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/geo/NCGeoEnricher.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/geo/NCGeoEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/geo/NCGeoEnricher.scala
index 5cd561c..8325172 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/geo/NCGeoEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/geo/NCGeoEnricher.scala
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.geo
+package org.apache.nlpcraft.server.nlp.enrichers.geo
 
 import java.util
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.nlp._
-import org.nlpcraft.common.nlp.pos.NCPennTreebank
-import org.nlpcraft.server.geo.NCGeoLocationKind._
-import org.nlpcraft.server.geo._
-import org.nlpcraft.server.json.NCJson
-import org.nlpcraft.server.nlp.enrichers.NCServerEnricher
-import org.nlpcraft.server.nlp.wordnet.NCWordNetManager
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.nlp._
+import org.apache.nlpcraft.common.nlp.pos.NCPennTreebank
+import org.apache.nlpcraft.server.geo.NCGeoLocationKind._
+import org.apache.nlpcraft.server.geo._
+import org.apache.nlpcraft.server.json.NCJson
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnricher
+import org.apache.nlpcraft.server.nlp.wordnet.NCWordNetManager
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/numeric/NCNumericEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/numeric/NCNumericEnricher.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/numeric/NCNumericEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/numeric/NCNumericEnricher.scala
index 82bc58e..1955558 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/numeric/NCNumericEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/numeric/NCNumericEnricher.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.numeric
+package org.apache.nlpcraft.server.nlp.enrichers.numeric
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.nlp._
-import org.nlpcraft.common.nlp.numeric._
-import org.nlpcraft.server.nlp.enrichers.NCServerEnricher
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.nlp._
+import org.apache.nlpcraft.common.nlp.numeric._
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnricher
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/quote/NCQuoteEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/quote/NCQuoteEnricher.scala
similarity index 94%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/quote/NCQuoteEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/quote/NCQuoteEnricher.scala
index f854f8c..6ef6719 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/quote/NCQuoteEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/quote/NCQuoteEnricher.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.quote
+package org.apache.nlpcraft.server.nlp.enrichers.quote
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.nlp._
-import org.nlpcraft.common.nlp.pos.NCPennTreebank
-import org.nlpcraft.server.nlp.enrichers.NCServerEnricher
-import org.nlpcraft.server.nlp.enrichers.NCServerEnricher._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.nlp._
+import org.apache.nlpcraft.common.nlp.pos.NCPennTreebank
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnricher
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnricher._
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/enrichers/stopword/NCStopWordEnricher.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/stopword/NCStopWordEnricher.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/nlp/enrichers/stopword/NCStopWordEnricher.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/stopword/NCStopWordEnricher.scala
index d235ea2..c07fad4 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/enrichers/stopword/NCStopWordEnricher.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/stopword/NCStopWordEnricher.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.stopword
+package org.apache.nlpcraft.server.nlp.enrichers.stopword
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.NCService
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.nlp.pos.NCPennTreebank
-import org.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
-import org.nlpcraft.server.nlp.enrichers.NCServerEnricher
-import org.nlpcraft.server.nlp.enrichers.NCServerEnricher._
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.nlp.pos.NCPennTreebank
+import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote, NCNlpSentenceToken}
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnricher
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnricher._
 
 import scala.annotation.tailrec
 import scala.collection.mutable
diff --git a/src/main/scala/org/nlpcraft/server/nlp/preproc/NCPreProcessManager.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/preproc/NCPreProcessManager.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/nlp/preproc/NCPreProcessManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/preproc/NCPreProcessManager.scala
index b8350d3..a0852b7 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/preproc/NCPreProcessManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/preproc/NCPreProcessManager.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.preproc
+package org.apache.nlpcraft.server.nlp.preproc
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
-import org.nlpcraft.server.nlp.spell.NCSpellCheckManager
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.server.nlp.spell.NCSpellCheckManager
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/spell/NCSpellCheckManager.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/spell/NCSpellCheckManager.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/nlp/spell/NCSpellCheckManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/spell/NCSpellCheckManager.scala
index 4ce155f..0782359 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/spell/NCSpellCheckManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/spell/NCSpellCheckManager.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.spell
+package org.apache.nlpcraft.server.nlp.spell
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.NCService
-import org.nlpcraft.server.json.NCJson
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.server.json.NCJson
 
 import scala.collection._
 
diff --git a/src/main/scala/org/nlpcraft/server/nlp/synonym/NCSynonymManager.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/synonym/NCSynonymManager.scala
similarity index 89%
rename from src/main/scala/org/nlpcraft/server/nlp/synonym/NCSynonymManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/synonym/NCSynonymManager.scala
index 38869ee..a0569a5 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/synonym/NCSynonymManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/synonym/NCSynonymManager.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.synonym
+package org.apache.nlpcraft.server.nlp.synonym
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common._
-import org.nlpcraft.common.NCService
-import org.nlpcraft.server.json.NCJson
-import org.nlpcraft.server.nlp.synonym.NCSynonymType._
-import org.nlpcraft.server.nlp.wordnet.NCWordNetManager
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.NCService
+import org.apache.nlpcraft.server.json.NCJson
+import org.apache.nlpcraft.server.nlp.synonym.NCSynonymType._
+import org.apache.nlpcraft.server.nlp.wordnet.NCWordNetManager
 
 /**
  * Built-in synonyms manager.
diff --git a/src/main/scala/org/nlpcraft/server/nlp/synonym/NCSynonymType.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/synonym/NCSynonymType.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/nlp/synonym/NCSynonymType.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/synonym/NCSynonymType.scala
index 44ab7e1..e50cb17 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/synonym/NCSynonymType.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/synonym/NCSynonymType.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.synonym
+package org.apache.nlpcraft.server.nlp.synonym
 
 /**
  * Synonym type.
diff --git a/src/main/scala/org/nlpcraft/server/nlp/wordnet/NCWordNetManager.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/wordnet/NCWordNetManager.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/nlp/wordnet/NCWordNetManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/nlp/wordnet/NCWordNetManager.scala
index c170cd0..cf3d86b 100644
--- a/src/main/scala/org/nlpcraft/server/nlp/wordnet/NCWordNetManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/wordnet/NCWordNetManager.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.wordnet
+package org.apache.nlpcraft.server.nlp.wordnet
 
 import io.opencensus.trace.Span
 import net.sf.extjwnl.data.POS._
 import net.sf.extjwnl.data.{IndexWord, POS, PointerType}
 import net.sf.extjwnl.dictionary.{Dictionary, MorphologicalProcessor}
-import org.nlpcraft.common._
-import org.nlpcraft.common.NCService
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.NCService
 
 import scala.collection.JavaConverters._
 
diff --git a/src/main/scala/org/nlpcraft/server/opencensus/NCOpenCensusServerStats.scala b/src/main/scala/org/apache/nlpcraft/server/opencensus/NCOpenCensusServerStats.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/server/opencensus/NCOpenCensusServerStats.scala
rename to src/main/scala/org/apache/nlpcraft/server/opencensus/NCOpenCensusServerStats.scala
index dc748c2..7c12e16 100644
--- a/src/main/scala/org/nlpcraft/server/opencensus/NCOpenCensusServerStats.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/opencensus/NCOpenCensusServerStats.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.opencensus
+package org.apache.nlpcraft.server.opencensus
 
 import java.util
 import java.util.Collections
diff --git a/src/main/scala/org/nlpcraft/server/probe/NCProbeManager.scala b/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/probe/NCProbeManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
index e2720bc..f50ffb5 100644
--- a/src/main/scala/org/nlpcraft/server/probe/NCProbeManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.probe
+package org.apache.nlpcraft.server.probe
 
 import java.io._
 import java.net.{InetSocketAddress, ServerSocket, Socket, SocketTimeoutException}
@@ -26,21 +26,21 @@ import java.util.concurrent.atomic.AtomicBoolean
 import java.util.concurrent.{ExecutorService, Executors}
 
 import io.opencensus.trace.Span
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.crypto.NCCipher
-import org.nlpcraft.common.nlp.NCNlpSentence
-import org.nlpcraft.common.nlp.core.NCNlpCoreManager
-import org.nlpcraft.common.socket.NCSocket
-import org.nlpcraft.common.version.NCVersion
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.probe.mgrs.NCProbeMessage
-import org.nlpcraft.server.company.NCCompanyManager
-import org.nlpcraft.server.mdo.{NCCompanyMdo, NCProbeMdo, NCProbeModelMdo, NCUserMdo}
-import org.nlpcraft.server.nlp.enrichers.NCServerEnrichmentManager
-import org.nlpcraft.server.proclog.NCProcessLogManager
-import org.nlpcraft.server.query.NCQueryManager
-import org.nlpcraft.server.sql.NCSql
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.crypto.NCCipher
+import org.apache.nlpcraft.common.nlp.NCNlpSentence
+import org.apache.nlpcraft.common.nlp.core.NCNlpCoreManager
+import org.apache.nlpcraft.common.socket.NCSocket
+import org.apache.nlpcraft.common.version.NCVersion
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.probe.mgrs.NCProbeMessage
+import org.apache.nlpcraft.server.company.NCCompanyManager
+import org.apache.nlpcraft.server.mdo.{NCCompanyMdo, NCProbeMdo, NCProbeModelMdo, NCUserMdo}
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnrichmentManager
+import org.apache.nlpcraft.server.proclog.NCProcessLogManager
+import org.apache.nlpcraft.server.query.NCQueryManager
+import org.apache.nlpcraft.server.sql.NCSql
 
 import scala.collection.JavaConverters._
 import scala.collection.{Map, mutable}
diff --git a/src/main/scala/org/nlpcraft/server/proclog/NCProcessLogManager.scala b/src/main/scala/org/apache/nlpcraft/server/proclog/NCProcessLogManager.scala
similarity index 94%
rename from src/main/scala/org/nlpcraft/server/proclog/NCProcessLogManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/proclog/NCProcessLogManager.scala
index 5b703fb..915066d 100644
--- a/src/main/scala/org/nlpcraft/server/proclog/NCProcessLogManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/proclog/NCProcessLogManager.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.proclog
+package org.apache.nlpcraft.server.proclog
 
 import java.sql.Timestamp
 
 import io.opencensus.trace.Span
 import org.apache.ignite.{IgniteAtomicSequence, IgniteSemaphore}
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.server.apicodes.NCApiStatusCode.NCApiStatusCode
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.mdo.NCProbeMdo
-import org.nlpcraft.server.sql.{NCSql, NCSqlManager}
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.server.apicodes.NCApiStatusCode.NCApiStatusCode
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.mdo.NCProbeMdo
+import org.apache.nlpcraft.server.sql.{NCSql, NCSqlManager}
 
 import scala.util.control.Exception.catching
 
diff --git a/src/main/scala/org/nlpcraft/server/query/NCQueryManager.scala b/src/main/scala/org/apache/nlpcraft/server/query/NCQueryManager.scala
similarity index 95%
rename from src/main/scala/org/nlpcraft/server/query/NCQueryManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/query/NCQueryManager.scala
index 350f54b..fa87ec5 100644
--- a/src/main/scala/org/nlpcraft/server/query/NCQueryManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/query/NCQueryManager.scala
@@ -15,25 +15,25 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.query
+package org.apache.nlpcraft.server.query
 
 import java.util.concurrent.ConcurrentHashMap
 
 import io.opencensus.trace.Span
 import org.apache.ignite.IgniteCache
 import org.apache.ignite.events.{CacheEvent, EventType}
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.server.opencensus._
-import org.nlpcraft.server.apicodes.NCApiStatusCode._
-import org.nlpcraft.server.company.NCCompanyManager
-import org.nlpcraft.server.ignite.NCIgniteHelpers._
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.mdo.NCQueryStateMdo
-import org.nlpcraft.server.nlp.enrichers.NCServerEnrichmentManager
-import org.nlpcraft.server.probe.NCProbeManager
-import org.nlpcraft.server.proclog.NCProcessLogManager
-import org.nlpcraft.server.tx.NCTxManager
-import org.nlpcraft.server.user.NCUserManager
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.server.opencensus._
+import org.apache.nlpcraft.server.apicodes.NCApiStatusCode._
+import org.apache.nlpcraft.server.company.NCCompanyManager
+import org.apache.nlpcraft.server.ignite.NCIgniteHelpers._
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.mdo.NCQueryStateMdo
+import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnrichmentManager
+import org.apache.nlpcraft.server.probe.NCProbeManager
+import org.apache.nlpcraft.server.proclog.NCProcessLogManager
+import org.apache.nlpcraft.server.tx.NCTxManager
+import org.apache.nlpcraft.server.user.NCUserManager
 
 import scala.concurrent.ExecutionContext.Implicits.global
 import scala.concurrent.{Future, Promise}
diff --git a/src/main/scala/org/nlpcraft/server/rest/NCBasicRestApi.scala b/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/rest/NCBasicRestApi.scala
rename to src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
index 8332d00..4071932 100644
--- a/src/main/scala/org/nlpcraft/server/rest/NCBasicRestApi.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.rest
+package org.apache.nlpcraft.server.rest
 
 import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
 import akka.http.scaladsl.model.HttpMethods._
@@ -28,16 +28,16 @@ import com.typesafe.scalalogging.LazyLogging
 import io.opencensus.stats.Measure
 import io.opencensus.trace.{Span, Status}
 import org.apache.commons.validator.routines.UrlValidator
-import org.nlpcraft.common.opencensus.NCOpenCensusTrace
-import org.nlpcraft.common.{NCE, NCException, U}
-import org.nlpcraft.server.apicodes.NCApiStatusCode.{API_OK, _}
-import org.nlpcraft.server.company.NCCompanyManager
-import org.nlpcraft.server.feedback.NCFeedbackManager
-import org.nlpcraft.server.mdo.{NCQueryStateMdo, NCUserMdo}
-import org.nlpcraft.server.opencensus.NCOpenCensusServerStats
-import org.nlpcraft.server.probe.NCProbeManager
-import org.nlpcraft.server.query.NCQueryManager
-import org.nlpcraft.server.user.NCUserManager
+import org.apache.nlpcraft.common.opencensus.NCOpenCensusTrace
+import org.apache.nlpcraft.common.{NCE, NCException, U}
+import org.apache.nlpcraft.server.apicodes.NCApiStatusCode.{API_OK, _}
+import org.apache.nlpcraft.server.company.NCCompanyManager
+import org.apache.nlpcraft.server.feedback.NCFeedbackManager
+import org.apache.nlpcraft.server.mdo.{NCQueryStateMdo, NCUserMdo}
+import org.apache.nlpcraft.server.opencensus.NCOpenCensusServerStats
+import org.apache.nlpcraft.server.probe.NCProbeManager
+import org.apache.nlpcraft.server.query.NCQueryManager
+import org.apache.nlpcraft.server.user.NCUserManager
 import spray.json.DefaultJsonProtocol._
 import spray.json.{JsValue, RootJsonFormat}
 
diff --git a/src/main/scala/org/nlpcraft/server/rest/NCRestApi.scala b/src/main/scala/org/apache/nlpcraft/server/rest/NCRestApi.scala
similarity index 91%
rename from src/main/scala/org/nlpcraft/server/rest/NCRestApi.scala
rename to src/main/scala/org/apache/nlpcraft/server/rest/NCRestApi.scala
index 24705be..9c0cb5b 100644
--- a/src/main/scala/org/nlpcraft/server/rest/NCRestApi.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/rest/NCRestApi.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.rest
+package org.apache.nlpcraft.server.rest
 
 import akka.http.scaladsl.server.{ExceptionHandler, RejectionHandler, Route}
-import org.nlpcraft.server.opencensus.NCOpenCensusServerStats
+import org.apache.nlpcraft.server.opencensus.NCOpenCensusServerStats
 
 /**
   * REST API.
diff --git a/src/main/scala/org/nlpcraft/server/rest/NCRestManager.scala b/src/main/scala/org/apache/nlpcraft/server/rest/NCRestManager.scala
similarity index 93%
rename from src/main/scala/org/nlpcraft/server/rest/NCRestManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/rest/NCRestManager.scala
index 7d8715e..140fae0 100644
--- a/src/main/scala/org/nlpcraft/server/rest/NCRestManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/rest/NCRestManager.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.rest
+package org.apache.nlpcraft.server.rest
 
 import akka.actor.ActorSystem
 import akka.http.scaladsl.Http
 import akka.http.scaladsl.server._
 import akka.stream.ActorMaterializer
 import io.opencensus.trace.Span
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.{NCService, _}
 
 import scala.concurrent.{ExecutionContextExecutor, Future}
 
@@ -56,7 +56,7 @@ object NCRestManager extends NCService {
             if (host == null)
                 abortWith(s"Configuration property port '$pre.host' must be specified.")
             if (apiImpl == null)
-                abortWith(s"Configuration property port '$pre.apiImpl' must be specified (use 'org.nlpcraft.server.rest.NCBasicRestApi' as default).")
+                abortWith(s"Configuration property port '$pre.apiImpl' must be specified (use 'org.apache.nlpcraft.server.rest.NCBasicRestApi' as default).")
         }
     }
 
diff --git a/src/main/scala/org/nlpcraft/server/sql/NCSql.scala b/src/main/scala/org/apache/nlpcraft/server/sql/NCSql.scala
similarity index 99%
rename from src/main/scala/org/nlpcraft/server/sql/NCSql.scala
rename to src/main/scala/org/apache/nlpcraft/server/sql/NCSql.scala
index 54d0559..4419bac 100644
--- a/src/main/scala/org/nlpcraft/server/sql/NCSql.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/sql/NCSql.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.sql
+package org.apache.nlpcraft.server.sql
 
 import java.sql.Types._
 import java.sql.{Connection, PreparedStatement, ResultSet, SQLException, Timestamp}
@@ -24,9 +24,9 @@ import com.mchange.v2.c3p0.ComboPooledDataSource
 import com.typesafe.scalalogging.LazyLogging
 import org.apache.ignite.{Ignite, IgniteAtomicSequence, IgniteJdbcThinDriver}
 import org.apache.ignite.transactions.Transaction
-import org.nlpcraft.common._
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.server.tx.NCTxManager
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.server.tx.NCTxManager
 import resource._
 
 import scala.collection._
diff --git a/src/main/scala/org/nlpcraft/server/sql/NCSqlBatch.scala b/src/main/scala/org/apache/nlpcraft/server/sql/NCSqlBatch.scala
similarity index 96%
rename from src/main/scala/org/nlpcraft/server/sql/NCSqlBatch.scala
rename to src/main/scala/org/apache/nlpcraft/server/sql/NCSqlBatch.scala
index 4727aec..342b842 100644
--- a/src/main/scala/org/nlpcraft/server/sql/NCSqlBatch.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/sql/NCSqlBatch.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.sql
+package org.apache.nlpcraft.server.sql
 
 /**
  * Database batch.
diff --git a/src/main/scala/org/nlpcraft/server/sql/NCSqlManager.scala b/src/main/scala/org/apache/nlpcraft/server/sql/NCSqlManager.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/sql/NCSqlManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/sql/NCSqlManager.scala
index 64515d9..c36800a 100644
--- a/src/main/scala/org/nlpcraft/server/sql/NCSqlManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/sql/NCSqlManager.scala
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.sql
+package org.apache.nlpcraft.server.sql
 
 import java.sql.Timestamp
 
 import io.opencensus.trace.Span
 import org.apache.ignite.IgniteAtomicSequence
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.server.apicodes.NCApiStatusCode._
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.mdo._
-import org.nlpcraft.server.sql.NCSql.Implicits._
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.server.apicodes.NCApiStatusCode._
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.mdo._
+import org.apache.nlpcraft.server.sql.NCSql.Implicits._
 
 import scala.util.control.Exception.catching
 
diff --git a/src/main/scala/org/nlpcraft/server/tx/NCTxCacheStoreSessionListener.scala b/src/main/scala/org/apache/nlpcraft/server/tx/NCTxCacheStoreSessionListener.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/tx/NCTxCacheStoreSessionListener.scala
rename to src/main/scala/org/apache/nlpcraft/server/tx/NCTxCacheStoreSessionListener.scala
index 60a248e..bfd91cf 100644
--- a/src/main/scala/org/nlpcraft/server/tx/NCTxCacheStoreSessionListener.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/tx/NCTxCacheStoreSessionListener.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.tx
+package org.apache.nlpcraft.server.tx
 
 import java.sql.SQLException
 
diff --git a/src/main/scala/org/nlpcraft/server/tx/NCTxManager.scala b/src/main/scala/org/apache/nlpcraft/server/tx/NCTxManager.scala
similarity index 98%
rename from src/main/scala/org/nlpcraft/server/tx/NCTxManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/tx/NCTxManager.scala
index a2b16ce..cc72b90 100644
--- a/src/main/scala/org/nlpcraft/server/tx/NCTxManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/tx/NCTxManager.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.tx
+package org.apache.nlpcraft.server.tx
 
 import java.sql.Connection
 
@@ -23,9 +23,9 @@ import io.opencensus.trace.Span
 import org.apache.ignite.IgniteTransactions
 import org.apache.ignite.lang.IgniteUuid
 import org.apache.ignite.transactions.{Transaction, TransactionConcurrency, TransactionIsolation}
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.common._
-import org.nlpcraft.common.NCService
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.common._
+import org.apache.nlpcraft.common.NCService
 
 import scala.collection.mutable
 import scala.util.control.Exception.catching
diff --git a/src/main/scala/org/nlpcraft/server/user/NCUserManager.scala b/src/main/scala/org/apache/nlpcraft/server/user/NCUserManager.scala
similarity index 97%
rename from src/main/scala/org/nlpcraft/server/user/NCUserManager.scala
rename to src/main/scala/org/apache/nlpcraft/server/user/NCUserManager.scala
index 927e6cf..2af49db 100644
--- a/src/main/scala/org/nlpcraft/server/user/NCUserManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/user/NCUserManager.scala
@@ -15,21 +15,21 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.user
+package org.apache.nlpcraft.server.user
 
 import java.util.{Timer, TimerTask}
 
 import io.opencensus.trace.Span
 import org.apache.commons.validator.routines.EmailValidator
 import org.apache.ignite.{IgniteAtomicSequence, IgniteCache, IgniteSemaphore, IgniteState, Ignition}
-import org.nlpcraft.common.blowfish.NCBlowfishHasher
-import org.nlpcraft.common.config.NCConfigurable
-import org.nlpcraft.common.{NCService, _}
-import org.nlpcraft.server.ignite.NCIgniteHelpers._
-import org.nlpcraft.server.ignite.NCIgniteInstance
-import org.nlpcraft.server.mdo.{NCUserMdo, NCUserPropertyMdo}
-import org.nlpcraft.server.sql.{NCSql, NCSqlManager}
-import org.nlpcraft.server.tx.NCTxManager
+import org.apache.nlpcraft.common.blowfish.NCBlowfishHasher
+import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.server.ignite.NCIgniteHelpers._
+import org.apache.nlpcraft.server.ignite.NCIgniteInstance
+import org.apache.nlpcraft.server.mdo.{NCUserMdo, NCUserPropertyMdo}
+import org.apache.nlpcraft.server.sql.{NCSql, NCSqlManager}
+import org.apache.nlpcraft.server.tx.NCTxManager
 
 import scala.collection.JavaConverters._
 import scala.util.control.Exception._
diff --git a/src/test/resources/log4j2.xml b/src/test/resources/log4j2.xml
index 2b14141..2f961d6 100644
--- a/src/test/resources/log4j2.xml
+++ b/src/test/resources/log4j2.xml
@@ -27,7 +27,7 @@
         <Root level="INFO">
             <AppenderRef ref="CONSOLE"/>
         </Root>
-        <Logger name="org.nlpcraft" level="TRACE" additivity="false">
+        <Logger name="org.apache.nlpcraft" level="TRACE" additivity="false">
             <AppenderRef ref="CONSOLE"/>
         </Logger>
         <Logger name="com.mchange" level="WARN" additivity="false">
diff --git a/src/test/scala/org/nlpcraft/NCTestProbe.scala b/src/test/scala/org/apache/nlpcraft/NCTestProbe.scala
similarity index 93%
rename from src/test/scala/org/nlpcraft/NCTestProbe.scala
rename to src/test/scala/org/apache/nlpcraft/NCTestProbe.scala
index 8b0e289..980b487 100644
--- a/src/test/scala/org/nlpcraft/NCTestProbe.scala
+++ b/src/test/scala/org/apache/nlpcraft/NCTestProbe.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft
+package org.apache.nlpcraft
 
-import org.nlpcraft.probe.NCProbe
+import org.apache.nlpcraft.probe.NCProbe
 
 /**
   * Probe test wrapper. It is used to load test models.
diff --git a/src/test/scala/org/nlpcraft/NCTestStartStop.scala b/src/test/scala/org/apache/nlpcraft/NCTestStartStop.scala
similarity index 95%
rename from src/test/scala/org/nlpcraft/NCTestStartStop.scala
rename to src/test/scala/org/apache/nlpcraft/NCTestStartStop.scala
index 29e9e20..01c33d6 100644
--- a/src/test/scala/org/nlpcraft/NCTestStartStop.scala
+++ b/src/test/scala/org/apache/nlpcraft/NCTestStartStop.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft
+package org.apache.nlpcraft
 
-import org.nlpcraft.common.NCService
+import org.apache.nlpcraft.common.NCService
 
 /**
   * NLPCraft lifecycle components test helper.
diff --git a/src/test/scala/org/nlpcraft/common/ascii/NCAsciiTableSpec.scala b/src/test/scala/org/apache/nlpcraft/common/ascii/NCAsciiTableSpec.scala
similarity index 98%
rename from src/test/scala/org/nlpcraft/common/ascii/NCAsciiTableSpec.scala
rename to src/test/scala/org/apache/nlpcraft/common/ascii/NCAsciiTableSpec.scala
index dab0ccd..3a73921 100644
--- a/src/test/scala/org/nlpcraft/common/ascii/NCAsciiTableSpec.scala
+++ b/src/test/scala/org/apache/nlpcraft/common/ascii/NCAsciiTableSpec.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.ascii
+package org.apache.nlpcraft.common.ascii
 
 import org.scalatest.FlatSpec
 
diff --git a/src/test/scala/org/nlpcraft/common/blowfish/NCBlowfishHasherSpec.scala b/src/test/scala/org/apache/nlpcraft/common/blowfish/NCBlowfishHasherSpec.scala
similarity index 97%
rename from src/test/scala/org/nlpcraft/common/blowfish/NCBlowfishHasherSpec.scala
rename to src/test/scala/org/apache/nlpcraft/common/blowfish/NCBlowfishHasherSpec.scala
index d20bb2a..c853d21 100644
--- a/src/test/scala/org/nlpcraft/common/blowfish/NCBlowfishHasherSpec.scala
+++ b/src/test/scala/org/apache/nlpcraft/common/blowfish/NCBlowfishHasherSpec.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.blowfish
+package org.apache.nlpcraft.common.blowfish
 
 import org.scalatest.FlatSpec
 
diff --git a/src/test/scala/org/nlpcraft/common/crypto/NCCipherSpec.scala b/src/test/scala/org/apache/nlpcraft/common/crypto/NCCipherSpec.scala
similarity index 96%
rename from src/test/scala/org/nlpcraft/common/crypto/NCCipherSpec.scala
rename to src/test/scala/org/apache/nlpcraft/common/crypto/NCCipherSpec.scala
index 12ecf24..69d2210 100644
--- a/src/test/scala/org/nlpcraft/common/crypto/NCCipherSpec.scala
+++ b/src/test/scala/org/apache/nlpcraft/common/crypto/NCCipherSpec.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.crypto
+package org.apache.nlpcraft.common.crypto
 
 import java.util.Base64
 
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 import org.scalatest.{BeforeAndAfter, FlatSpec}
 
 /**
diff --git a/src/test/scala/org/nlpcraft/common/makro/NCMacroParserSpec.scala b/src/test/scala/org/apache/nlpcraft/common/makro/NCMacroParserSpec.scala
similarity index 99%
rename from src/test/scala/org/nlpcraft/common/makro/NCMacroParserSpec.scala
rename to src/test/scala/org/apache/nlpcraft/common/makro/NCMacroParserSpec.scala
index 9746f64..6de969b 100644
--- a/src/test/scala/org/nlpcraft/common/makro/NCMacroParserSpec.scala
+++ b/src/test/scala/org/apache/nlpcraft/common/makro/NCMacroParserSpec.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.makro
+package org.apache.nlpcraft.common.makro
 
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 import org.scalatest.FlatSpec
 
 import scala.compat.Platform._
diff --git a/src/test/scala/org/nlpcraft/common/util/NCUtilsSpec.scala b/src/test/scala/org/apache/nlpcraft/common/util/NCUtilsSpec.scala
similarity index 97%
rename from src/test/scala/org/nlpcraft/common/util/NCUtilsSpec.scala
rename to src/test/scala/org/apache/nlpcraft/common/util/NCUtilsSpec.scala
index 6c4d1c8..569b32e 100644
--- a/src/test/scala/org/nlpcraft/common/util/NCUtilsSpec.scala
+++ b/src/test/scala/org/apache/nlpcraft/common/util/NCUtilsSpec.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.common.util
+package org.apache.nlpcraft.common.util
 
-import org.nlpcraft.common._
+import org.apache.nlpcraft.common._
 import org.scalatest.FlatSpec
 
 /**
diff --git a/src/test/scala/org/nlpcraft/model/intent/dsl/NCDslTest.java b/src/test/scala/org/apache/nlpcraft/model/intent/dsl/NCDslTest.java
similarity index 89%
rename from src/test/scala/org/nlpcraft/model/intent/dsl/NCDslTest.java
rename to src/test/scala/org/apache/nlpcraft/model/intent/dsl/NCDslTest.java
index 786e74b..db71b35 100644
--- a/src/test/scala/org/nlpcraft/model/intent/dsl/NCDslTest.java
+++ b/src/test/scala/org/apache/nlpcraft/model/intent/dsl/NCDslTest.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.dsl;
+package org.apache.nlpcraft.model.intent.dsl;
 
 import org.junit.jupiter.api.*;
-import org.nlpcraft.common.*;
-import org.nlpcraft.model.tools.test.*;
-import org.nlpcraft.probe.embedded.*;
+import org.apache.nlpcraft.common.*;
+import org.apache.nlpcraft.model.tools.test.*;
+import org.apache.nlpcraft.probe.embedded.*;
 import java.io.*;
 
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/src/test/scala/org/nlpcraft/model/intent/dsl/NCDslTestModel.scala b/src/test/scala/org/apache/nlpcraft/model/intent/dsl/NCDslTestModel.scala
similarity index 83%
rename from src/test/scala/org/nlpcraft/model/intent/dsl/NCDslTestModel.scala
rename to src/test/scala/org/apache/nlpcraft/model/intent/dsl/NCDslTestModel.scala
index ef5a5c0..320079b 100644
--- a/src/test/scala/org/nlpcraft/model/intent/dsl/NCDslTestModel.scala
+++ b/src/test/scala/org/apache/nlpcraft/model/intent/dsl/NCDslTestModel.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.dsl
+package org.apache.nlpcraft.model.intent.dsl
 
-import org.nlpcraft.model._
+import org.apache.nlpcraft.model._
 
 /**
  * Test model for intent DSL.
  */
-class NCDslTestModel extends NCModelFileAdapter("org/nlpcraft/model/intent/dsl/dsl_test_model.yaml") {
+class NCDslTestModel extends NCModelFileAdapter("org/apache/nlpcraft/model/intent/dsl/dsl_test_model.yaml") {
     @NCIntentRef("i1")
     private def callback$i4(ctx: NCIntentMatch): NCResult = NCResult.text("callback$i1")
 }
diff --git a/src/test/scala/org/nlpcraft/model/intent/dsl/dsl_test_model.yaml b/src/test/scala/org/apache/nlpcraft/model/intent/dsl/dsl_test_model.yaml
similarity index 100%
rename from src/test/scala/org/nlpcraft/model/intent/dsl/dsl_test_model.yaml
rename to src/test/scala/org/apache/nlpcraft/model/intent/dsl/dsl_test_model.yaml
diff --git a/src/test/scala/org/nlpcraft/model/intent/impl/NCIntentSolverEngineSpec.scala b/src/test/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngineSpec.scala
similarity index 95%
rename from src/test/scala/org/nlpcraft/model/intent/impl/NCIntentSolverEngineSpec.scala
rename to src/test/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngineSpec.scala
index 07e56a5..c52e291 100644
--- a/src/test/scala/org/nlpcraft/model/intent/impl/NCIntentSolverEngineSpec.scala
+++ b/src/test/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngineSpec.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.intent.impl
+package org.apache.nlpcraft.model.intent.impl
 
-import org.nlpcraft.model.intent.utils.NCDslFlowItem
+import org.apache.nlpcraft.model.intent.utils.NCDslFlowItem
 import org.scalatest.FlatSpec
 
 /**
diff --git a/src/test/scala/org/nlpcraft/model/tools/NCSqlModelEngineSpec.scala b/src/test/scala/org/apache/nlpcraft/model/tools/NCSqlModelEngineSpec.scala
similarity index 98%
rename from src/test/scala/org/nlpcraft/model/tools/NCSqlModelEngineSpec.scala
rename to src/test/scala/org/apache/nlpcraft/model/tools/NCSqlModelEngineSpec.scala
index b6c672f..6b9fe73 100644
--- a/src/test/scala/org/nlpcraft/model/tools/NCSqlModelEngineSpec.scala
+++ b/src/test/scala/org/apache/nlpcraft/model/tools/NCSqlModelEngineSpec.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.model.tools
+package org.apache.nlpcraft.model.tools
 
 import org.scalatest.FlatSpec
 
diff --git a/src/test/scala/org/nlpcraft/models/nested/NCNestedTestModel.scala b/src/test/scala/org/apache/nlpcraft/models/nested/NCNestedTestModel.scala
similarity index 95%
rename from src/test/scala/org/nlpcraft/models/nested/NCNestedTestModel.scala
rename to src/test/scala/org/apache/nlpcraft/models/nested/NCNestedTestModel.scala
index c4c5937..2137e09 100644
--- a/src/test/scala/org/nlpcraft/models/nested/NCNestedTestModel.scala
+++ b/src/test/scala/org/apache/nlpcraft/models/nested/NCNestedTestModel.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.models.nested
+package org.apache.nlpcraft.models.nested
 
 import java.util
 import java.util.Collections
 
-import org.nlpcraft.model.{NCIntentMatch, _}
+import org.apache.nlpcraft.model.{NCIntentMatch, _}
 
 import scala.collection.JavaConverters._
 import scala.language.implicitConversions
diff --git a/src/test/scala/org/nlpcraft/models/stm/NCStmTestModel.scala b/src/test/scala/org/apache/nlpcraft/models/stm/NCStmTestModel.scala
similarity index 96%
rename from src/test/scala/org/nlpcraft/models/stm/NCStmTestModel.scala
rename to src/test/scala/org/apache/nlpcraft/models/stm/NCStmTestModel.scala
index b151857..5325077 100644
--- a/src/test/scala/org/nlpcraft/models/stm/NCStmTestModel.scala
+++ b/src/test/scala/org/apache/nlpcraft/models/stm/NCStmTestModel.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.models.stm
+package org.apache.nlpcraft.models.stm
 
 import java.util
 
-import org.nlpcraft.model.{NCIntentMatch, _}
+import org.apache.nlpcraft.model.{NCIntentMatch, _}
 
 import scala.collection.JavaConverters._
 import scala.language.implicitConversions
diff --git a/src/test/scala/org/nlpcraft/models/stm/NCStmTestModelSpec.java b/src/test/scala/org/apache/nlpcraft/models/stm/NCStmTestModelSpec.java
similarity index 85%
rename from src/test/scala/org/nlpcraft/models/stm/NCStmTestModelSpec.java
rename to src/test/scala/org/apache/nlpcraft/models/stm/NCStmTestModelSpec.java
index d917b7f..f95ae31 100644
--- a/src/test/scala/org/nlpcraft/models/stm/NCStmTestModelSpec.java
+++ b/src/test/scala/org/apache/nlpcraft/models/stm/NCStmTestModelSpec.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.models.stm;
+package org.apache.nlpcraft.models.stm;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.nlpcraft.common.NCException;
-import org.nlpcraft.model.tools.test.NCTestClient;
-import org.nlpcraft.model.tools.test.NCTestClientBuilder;
-import org.nlpcraft.model.tools.test.NCTestResult;
+import org.apache.nlpcraft.common.NCException;
+import org.apache.nlpcraft.model.tools.test.NCTestClient;
+import org.apache.nlpcraft.model.tools.test.NCTestClientBuilder;
+import org.apache.nlpcraft.model.tools.test.NCTestResult;
 
 import java.io.IOException;
 
@@ -31,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
- * Server and probe with deployed org.nlpcraft.models.stm.NCStmTestModel should be started before.
+ * Server and probe with deployed org.apache.nlpcraft.models.stm.NCStmTestModel should be started before.
  */
 class NCStmTestModelSpec {
     private NCTestClient client;
diff --git a/src/test/scala/org/nlpcraft/server/nlp/enrichers/date/tools/NCDateGeneratorSpec.scala b/src/test/scala/org/apache/nlpcraft/server/nlp/enrichers/date/tools/NCDateGeneratorSpec.scala
similarity index 95%
rename from src/test/scala/org/nlpcraft/server/nlp/enrichers/date/tools/NCDateGeneratorSpec.scala
rename to src/test/scala/org/apache/nlpcraft/server/nlp/enrichers/date/tools/NCDateGeneratorSpec.scala
index 4dd792c..3f9f970 100644
--- a/src/test/scala/org/nlpcraft/server/nlp/enrichers/date/tools/NCDateGeneratorSpec.scala
+++ b/src/test/scala/org/apache/nlpcraft/server/nlp/enrichers/date/tools/NCDateGeneratorSpec.scala
@@ -15,22 +15,22 @@
  * limitations under the License.
  */
 
-package org.nlpcraft.server.nlp.enrichers.date.tools
+package org.apache.nlpcraft.server.nlp.enrichers.date.tools
 
 import java.text.SimpleDateFormat
 import java.util.{Calendar, Date, Locale}
 
-import org.nlpcraft.common.ascii.NCAsciiTable
-import org.nlpcraft.server.nlp.enrichers.date.tools.NCDateGenerator.LHM_SS
-import org.nlpcraft.server.nlp.enrichers.date.{NCDateParser, NCDateRange}
-import org.nlpcraft.server.nlp.enrichers.date.NCDateFormatType._
+import org.apache.nlpcraft.common.ascii.NCAsciiTable
+import org.apache.nlpcraft.server.nlp.enrichers.date.tools.NCDateGenerator.LHM_SS
+import org.apache.nlpcraft.server.nlp.enrichers.date.{NCDateParser, NCDateRange}
+import org.apache.nlpcraft.server.nlp.enrichers.date.NCDateFormatType._
 
 import org.scalatest.FunSuite
 
 import scala.collection.JavaConverters._
 import scala.collection._
 import scala.collection.mutable.{LinkedHashMap ⇒ LHM}
-import org.nlpcraft.server.nlp.enrichers.date.NCDateConstants._
+import org.apache.nlpcraft.server.nlp.enrichers.date.NCDateConstants._
 import scala.language.implicitConversions
 
 /**