diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/jni/Android.mk b/java/android/OlmLibSdk/olm-sdk/src/main/jni/Android.mk
index 2a7d216e991700f683721a3d497df43834f7673b..ffe1f6799dec753c607a3ef11215d7186e0f714a 100644
--- a/java/android/OlmLibSdk/olm-sdk/src/main/jni/Android.mk
+++ b/java/android/OlmLibSdk/olm-sdk/src/main/jni/Android.mk
@@ -50,7 +50,8 @@ olm_session.cpp \
 olm_jni_helper.cpp \
 olm_inbound_group_session.cpp \
 olm_outbound_group_session.cpp \
-olm_utility.cpp
+olm_utility.cpp \
+olm_manager.cpp
 
 LOCAL_LDLIBS := -llog
 
diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_manager.cpp b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_manager.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2ae05aa9a3ceb29e4a652f5cf2475e9ea497a7c6
--- /dev/null
+++ b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_manager.cpp
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2016 OpenMarket Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "olm_manager.h"
+
+using namespace AndroidOlmSdk;
+
+JNIEXPORT jstring OLM_MANAGER_FUNC_DEF(getOlmLibVersionJni)(JNIEnv* env, jobject thiz)
+{
+  uint8_t majorVer=0, minorVer=0, patchVer=0;
+  jstring returnValueStr=0;
+  char buff[150];
+
+  olm_get_library_version(&majorVer, &minorVer, &patchVer);
+  LOGD("## getOlmLibVersionJni(): Major=%d Minor=%d Patch=%d", majorVer, minorVer, patchVer);
+
+  snprintf(buff, sizeof(buff), "%d.%d.%d", majorVer, minorVer, patchVer);
+  returnValueStr = env->NewStringUTF((const char*)buff);
+
+  return returnValueStr;
+}
\ No newline at end of file
diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_manager.h b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_manager.h
new file mode 100644
index 0000000000000000000000000000000000000000..20f7112c33677a248beef886ad0e87a5a1c5ba59
--- /dev/null
+++ b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_manager.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2016 OpenMarket Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _OMLMANAGER_H
+#define _OMLMANAGER_H
+
+#include "olm_jni.h"
+#include "olm/olm.h"
+
+#define OLM_MANAGER_FUNC_DEF(func_name) FUNC_DEF(OlmManager,func_name)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+JNIEXPORT jstring OLM_MANAGER_FUNC_DEF(getOlmLibVersionJni)(JNIEnv *env, jobject thiz);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_utility.cpp b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_utility.cpp
index 3e5dbe14a1fd34834fc8eadf57c94111e5407fce..d84ee0caea4ff6eaed4b36f235d0e63c8b5bf3bb 100644
--- a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_utility.cpp
+++ b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_utility.cpp
@@ -230,19 +230,4 @@ JNIEXPORT jstring OLM_UTILITY_FUNC_DEF(sha256Jni)(JNIEnv *env, jobject thiz, jst
     }
 
     return sha256RetValue;
-}
-
-JNIEXPORT jstring OLM_UTILITY_FUNC_DEF(getOlmLibVersionJni)(JNIEnv* env, jobject thiz)
-{
-  uint8_t majorVer=0, minorVer=0, patchVer=0;
-  jstring returnValueStr=0;
-  char buff[150];
-
-  olm_get_library_version(&majorVer, &minorVer, &patchVer);
-  LOGD("## getOlmLibVersionJni(): Major=%d Minor=%d Patch=%d", majorVer, minorVer, patchVer);
-
-  snprintf(buff, sizeof(buff), "%d.%d.%d", majorVer, minorVer, patchVer);
-  returnValueStr = env->NewStringUTF((const char*)buff);
-
-  return returnValueStr;
 }
\ No newline at end of file
diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_utility.h b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_utility.h
index 691bcf995d0c602a844b6e97a5ed279ea1fe0c5b..da973de2409719adf3702802913375a70c7f4c65 100644
--- a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_utility.h
+++ b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_utility.h
@@ -30,7 +30,6 @@ JNIEXPORT jlong   OLM_UTILITY_FUNC_DEF(initUtilityJni)(JNIEnv *env, jobject thiz
 JNIEXPORT void    OLM_UTILITY_FUNC_DEF(releaseUtilityJni)(JNIEnv *env, jobject thiz);
 JNIEXPORT jstring OLM_UTILITY_FUNC_DEF(verifyEd25519SignatureJni)(JNIEnv *env, jobject thiz, jstring aSignature, jstring aKey, jstring aMessage);
 JNIEXPORT jstring OLM_UTILITY_FUNC_DEF(sha256Jni)(JNIEnv *env, jobject thiz, jstring aMessageToHash);
-JNIEXPORT jstring OLM_UTILITY_FUNC_DEF(getOlmLibVersionJni)(JNIEnv *env, jobject thiz);
 #ifdef __cplusplus
 }
 #endif