diff --git a/lib/modem-commands.js b/lib/modem-commands.js
index 122f9ae..7553562 100644
--- a/lib/modem-commands.js
+++ b/lib/modem-commands.js
@@ -117,6 +117,7 @@ exports.queryIMEI = function queryIMEI(lockName) {
             port.unpipe(parser);
             mutex.unlock(lockName || MUTEX_COMMAND, 'queryIMEI');
             modemInfo.imei = data.toString().trim();
+            logger.info('IMEI extracted', { imei: modemInfo.imei });
             resolve(modemInfo.imei);
         });
 
@@ -135,6 +136,7 @@ exports.queryIMSI = function queryIMSI(lockName) {
             port.unpipe(parser);
             mutex.unlock(lockName || MUTEX_COMMAND, 'queryIMSI');
             modemInfo.imsi = data.toString().trim();
+            logger.info('IMSI extracted', { imsi: modemInfo.imsi });
             resolve(modemInfo.imsi);
         });
 
@@ -148,8 +150,9 @@ exports.queryIMSI = function queryIMSI(lockName) {
 exports.queryIMEIAndIMSI = async function queryIMEIAndIMSI() {
     await mutex.lock(MUTEX_COMMAND, 'queryIMEIAndIMSI');
 
-    await this.queryIMEI(MUTEX_SUBCOMMAND);
-    await this.queryIMSI(MUTEX_SUBCOMMAND);
+    const imei = await this.queryIMEI(MUTEX_SUBCOMMAND);
+    const imsi = await this.queryIMSI(MUTEX_SUBCOMMAND);
 
     await mutex.unlock(MUTEX_COMMAND, 'queryIMEIAndIMSI');
+    return { imei, imsi };
 };
diff --git a/lib/serialport-parsers.js b/lib/serialport-parsers.js
index dd178ea..1afb1e1 100644
--- a/lib/serialport-parsers.js
+++ b/lib/serialport-parsers.js
@@ -1,6 +1,7 @@
 const PARSER_READLINE_DELIMITER = '\r\n';
 const PARSER_WAIT_FOR_OK_OR_ERROR_REGEX = /\r\n(?:OK|ERROR)\r\n/;
 
+const moment = require('moment');
 const pdu = require('node-pdu');
 const ParserReadline = require('@serialport/parser-readline');
 const ParserRegex = require('@serialport/parser-regex');
@@ -8,6 +9,7 @@ const ParserRegex = require('@serialport/parser-regex');
 const logger = require('komodo-sdk/logger');
 
 const dbCops = require('./db-cops');
+const modemInfo = require('./modem-info');
 
 let port;
 
@@ -35,8 +37,15 @@ function onCSQ(data) {
     const val = data.toString().trim().match(/\+CSQ:\s*(.*)/);
     if (!val || !val[1]) return null;
 
+    const [, signalStrength] = val;
+
     logger.info('Signal quality extracted', { signalQuality: val[1] });
-    return val[1];
+
+    modemInfo.signalStrength = signalStrength;
+    modemInfo.signalStrengthTs = new Date();
+    modemInfo.signalStrengthTsReadable = moment(modemInfo.signalStrengthTs).format('YYYY-MM-DD HH:mm:ss');
+
+    return signalStrength;
 }
 
 function onPduDeliver(data, parsedData) {
@@ -64,6 +73,10 @@ function onCOPS(data) {
         cops, mode, format, networkId, networkName,
     });
 
+    modemInfo.cops = cops;
+    modemInfo.networkId = networkId;
+    modemInfo.networkName = networkName;
+
     return {
         cops, mode, format, networkId, networkName,
     };
diff --git a/modem-tester.js b/modem-tester.js
index d9f9d7a..57e5c82 100644
--- a/modem-tester.js
+++ b/modem-tester.js
@@ -3,11 +3,11 @@ const SerialPort = require('serialport');
 const config = require('komodo-sdk/config');
 const logger = require('komodo-sdk/logger');
 
-
 const ParserInterByteTimeout = require('@serialport/parser-inter-byte-timeout');
 
 const parsers = require('./lib/serialport-parsers');
 const modemCommands = require('./lib/modem-commands');
+const modemInfo = require('./lib/modem-info');
 
 const parserInterByteTimeout = new ParserInterByteTimeout({ interval: 1000 });
 parserInterByteTimeout.on('data', (data) => {
@@ -27,10 +27,12 @@ const port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (er
 
     await modemCommands.queryIMEIAndIMSI();
     await modemCommands.queryCOPSAndSignalQuality();
+    logger.info('Modem state', modemInfo);
 
     setInterval(() => {
         modemCommands.queryIMEIAndIMSI();
         modemCommands.queryCOPSAndSignalQuality();
+        logger.info('Modem state', modemInfo);
     }, (config && config.interval_beetwen_signal_strength_ms) || 30000);
 });