diff --git a/README.md b/README.md
index 297c086..f29f94c 100644
--- a/README.md
+++ b/README.md
@@ -37,4 +37,55 @@ logger.e(e,stacktrace); // Use StackTrace.current in case no stacktrace availabl
```
logger.i("Api response: xyz");
-```
\ No newline at end of file
+```
+
+## Functions
+
+1. `Device_Info`: used to get details of device, namely:
+
+ - `brand`
+ - `manufacturer`
+ - `model`
+ - `os`
+ - `sdk`
+ - `id`
+ - `imei`
+
+ Also contains three subclasses:
+ - `IosDeviceInfoImpl`: For IOS devices
+ - `AndroidDeviceInfoImpl`: For Android devices
+ - `UnknownDeviceInfoImpl`: For other devices
+
+
+2. `Package_Info`: used to get details of package and application, namely:
+
+ - `appName`
+ - `packageName`
+ - `version`
+ - `buildNumber`
+
+ `PackageInformationImpl` class defined here contains `getPackageInfo` function that returns all package and app details if detected platform:
+ `isMobile` or else returns "NA' in all fields.
+
+
+3. `System_Info`: used to combine device and package details to get system details, namely:
+
+ - `version`
+ - `appName`
+ - `packageName`
+ - `buildNumber`
+ - `brand`
+ - `id`
+ - `manufacturer`
+ - `model`
+ - `os`
+ - `sdk`
+ - `imei`
+
+
+4. `Platform_Utils`: used to check the platform on which the application is running. Platforms include:
+ - `Debug`
+ - `Mobile` (includes `Web`, `Android` and `IOS`)
+ - `Linux`
+ - `Mac`
+ - `Windows`