diff --git a/alib2common/src/measurements/MeasurementEngine.cpp b/alib2common/src/measurements/MeasurementEngine.cpp
index 0615258d58e40ddff736a34e7971ffb0a47926c2..19fac66b964e22e8ee2c9f03df2da606cf78e53c 100644
--- a/alib2common/src/measurements/MeasurementEngine.cpp
+++ b/alib2common/src/measurements/MeasurementEngine.cpp
@@ -54,6 +54,10 @@ void MeasurementEngine::reset_measurements ( ) {
 
 	frames.emplace_back ( "Root", measurements::Type::ROOT, 0 );
 	frame_idx_stack.push_back ( 0 );
+
+	TimeDataFrame::init ( 0, frames );
+	MemoryDataFrame::init ( 0, frames );
+	CounterDataFrame::init ( 0, frames );
 }
 
 MeasurementResults MeasurementEngine::get_results ( ) const {
@@ -62,7 +66,7 @@ MeasurementResults MeasurementEngine::get_results ( ) const {
 
 template < typename Hint >
 void MeasurementEngine::hint ( Hint hint ) {
-	if ( ( frame_idx_stack.size ( ) == 0 ) || ( frames[frame_idx_stack.back ( )].type == measurements::Type::ROOT ) ) return;
+	if ( ( frame_idx_stack.size ( ) == 0 ) ) return;
 
 	Hint::frame_type::hint ( frame_idx_stack.back ( ), frames, std::move ( hint ) );
 }
diff --git a/alib2common/src/measurements/MeasurementXmlFactory.cpp b/alib2common/src/measurements/MeasurementXmlFactory.cpp
index 06bb32b916ad72e3d1c2e0aaac6a88b6846051f3..a8b4db4372b01de0d2f0059ec4ac9462f6b2e976 100644
--- a/alib2common/src/measurements/MeasurementXmlFactory.cpp
+++ b/alib2common/src/measurements/MeasurementXmlFactory.cpp
@@ -57,9 +57,9 @@ void MeasurementXmlFactory::composeTimeDataFrame ( deque < Token > & tokens, uns
 	tokens.emplace_back ( TIME_DATA_FRAME_DURATION_TAG, Token::TokenType::START_ELEMENT );
 	tokens.emplace_back ( std::to_string ( frame.duration.count ( ) ), Token::TokenType::CHARACTER );
 	tokens.emplace_back ( TIME_DATA_FRAME_DURATION_TAG, Token::TokenType::END_ELEMENT );
-	tokens.emplace_back ( TIME_DATA_FRAME_REAL_DURATION_TAG, Token::TokenType::START_ELEMENT );
-	tokens.emplace_back ( std::to_string ( frame.real_duration.count ( ) ), Token::TokenType::CHARACTER );
-	tokens.emplace_back ( TIME_DATA_FRAME_REAL_DURATION_TAG, Token::TokenType::END_ELEMENT );
+	tokens.emplace_back ( TIME_DATA_FRAME_IN_FRAME_DURATION_TAG, Token::TokenType::START_ELEMENT );
+	tokens.emplace_back ( std::to_string ( frame.in_frame_duration.count ( ) ), Token::TokenType::CHARACTER );
+	tokens.emplace_back ( TIME_DATA_FRAME_IN_FRAME_DURATION_TAG, Token::TokenType::END_ELEMENT );
 	tokens.emplace_back ( TIME_DATA_FRAME_TAG, Token::TokenType::END_ELEMENT );
 }
 
@@ -76,6 +76,9 @@ void MeasurementXmlFactory::composeMemoryDataFrame ( deque < Token > & tokens, u
 	tokens.emplace_back ( MEMORY_DATA_FRAME_HIGH_WATERMARK_TAG, Token::TokenType::START_ELEMENT );
 	tokens.emplace_back ( std::to_string ( frame.high_watermark ), Token::TokenType::CHARACTER );
 	tokens.emplace_back ( MEMORY_DATA_FRAME_HIGH_WATERMARK_TAG, Token::TokenType::END_ELEMENT );
+	tokens.emplace_back ( MEMORY_DATA_FRAME_IN_FRAME_HIGH_WATERMARK_TAG, Token::TokenType::START_ELEMENT );
+	tokens.emplace_back ( std::to_string ( frame.in_frame_high_watermark ), Token::TokenType::CHARACTER );
+	tokens.emplace_back ( MEMORY_DATA_FRAME_IN_FRAME_HIGH_WATERMARK_TAG, Token::TokenType::END_ELEMENT );
 	tokens.emplace_back ( MEMORY_DATA_FRAME_TAG, Token::TokenType::END_ELEMENT );
 }
 
@@ -99,9 +102,9 @@ void MeasurementXmlFactory::composeCounterDataFrame ( deque < Token > & tokens,
 
 	tokens.emplace_back ( COUNTER_DATA_FRAME_COUNTERS_TAG, Token::TokenType::END_ELEMENT );
 
-	tokens.emplace_back ( COUNTER_DATA_FRAME_REAL_COUNTERS_TAG, Token::TokenType::START_ELEMENT );
+	tokens.emplace_back ( COUNTER_DATA_FRAME_IN_FRAME_COUNTERS_TAG, Token::TokenType::START_ELEMENT );
 
-	for ( const auto & elem : cdf.real_counters ) {
+	for ( const auto & elem : cdf.in_frame_counters ) {
 		tokens.emplace_back ( COUNTER_DATA_FRAME_COUNTER_TAG, Token::TokenType::START_ELEMENT );
 		tokens.emplace_back ( COUNTER_DATA_FRAME_COUNTER_NAME_TAG, Token::TokenType::START_ELEMENT );
 		tokens.emplace_back ( measurements::to_string ( elem.first ), Token::TokenType::CHARACTER );
@@ -112,7 +115,7 @@ void MeasurementXmlFactory::composeCounterDataFrame ( deque < Token > & tokens,
 		tokens.emplace_back ( COUNTER_DATA_FRAME_COUNTER_TAG, Token::TokenType::END_ELEMENT );
 	}
 
-	tokens.emplace_back ( COUNTER_DATA_FRAME_REAL_COUNTERS_TAG, Token::TokenType::END_ELEMENT );
+	tokens.emplace_back ( COUNTER_DATA_FRAME_IN_FRAME_COUNTERS_TAG, Token::TokenType::END_ELEMENT );
 
 	tokens.emplace_back ( COUNTER_DATA_FRAME_TAG, Token::TokenType::END_ELEMENT );
 }
@@ -232,10 +235,10 @@ void MeasurementXmlFactory::parseTimeDataFrame ( MeasurementFrame & mf, deque <
 			FromXMLParserHelper::popToken ( iter, Token::TokenType::START_ELEMENT, TIME_DATA_FRAME_DURATION_TAG );
 			mf.time.duration = TimeDataFrame::value_type ( valueTypeFromString < TimeDataFrame::value_type::rep > ( FromXMLParserHelper::popTokenData ( iter, Token::TokenType::CHARACTER ) ) );
 			FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, TIME_DATA_FRAME_DURATION_TAG );
-		} else if ( data == TIME_DATA_FRAME_REAL_DURATION_TAG ) {
-			FromXMLParserHelper::popToken ( iter, Token::TokenType::START_ELEMENT, TIME_DATA_FRAME_REAL_DURATION_TAG );
-			mf.time.real_duration = TimeDataFrame::value_type ( valueTypeFromString < TimeDataFrame::value_type::rep > ( FromXMLParserHelper::popTokenData ( iter, Token::TokenType::CHARACTER ) ) );
-			FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, TIME_DATA_FRAME_REAL_DURATION_TAG );
+		} else if ( data == TIME_DATA_FRAME_IN_FRAME_DURATION_TAG ) {
+			FromXMLParserHelper::popToken ( iter, Token::TokenType::START_ELEMENT, TIME_DATA_FRAME_IN_FRAME_DURATION_TAG );
+			mf.time.in_frame_duration = TimeDataFrame::value_type ( valueTypeFromString < TimeDataFrame::value_type::rep > ( FromXMLParserHelper::popTokenData ( iter, Token::TokenType::CHARACTER ) ) );
+			FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, TIME_DATA_FRAME_IN_FRAME_DURATION_TAG );
 		} else {
 			break;
 		}
@@ -264,6 +267,10 @@ void MeasurementXmlFactory::parseMemoryDataFrame ( MeasurementFrame & mf, deque
 			FromXMLParserHelper::popToken ( iter, Token::TokenType::START_ELEMENT, MEMORY_DATA_FRAME_HIGH_WATERMARK_TAG );
 			mf.memory.high_watermark = valueTypeFromString < MemoryDataFrame::value_type > ( FromXMLParserHelper::popTokenData ( iter, Token::TokenType::CHARACTER ) );
 			FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, MEMORY_DATA_FRAME_HIGH_WATERMARK_TAG );
+		} else if ( data == MEMORY_DATA_FRAME_IN_FRAME_HIGH_WATERMARK_TAG ) {
+			FromXMLParserHelper::popToken ( iter, Token::TokenType::START_ELEMENT, MEMORY_DATA_FRAME_IN_FRAME_HIGH_WATERMARK_TAG );
+			mf.memory.in_frame_high_watermark = valueTypeFromString < MemoryDataFrame::value_type > ( FromXMLParserHelper::popTokenData ( iter, Token::TokenType::CHARACTER ) );
+			FromXMLParserHelper::popToken ( iter, Token::TokenType::END_ELEMENT, MEMORY_DATA_FRAME_IN_FRAME_HIGH_WATERMARK_TAG );
 		} else {
 			break;
 		}
@@ -282,8 +289,8 @@ void MeasurementXmlFactory::parseCounterDataFrame ( MeasurementFrame & mf, deque
 
 		if ( data == COUNTER_DATA_FRAME_COUNTERS_TAG )
 			parseCounterDataFrameCounters ( COUNTER_DATA_FRAME_COUNTERS_TAG, mf.counter.counters, iter );
-		else if ( data == COUNTER_DATA_FRAME_REAL_COUNTERS_TAG )
-			parseCounterDataFrameCounters ( COUNTER_DATA_FRAME_REAL_COUNTERS_TAG, mf.counter.real_counters, iter );
+		else if ( data == COUNTER_DATA_FRAME_IN_FRAME_COUNTERS_TAG )
+			parseCounterDataFrameCounters ( COUNTER_DATA_FRAME_IN_FRAME_COUNTERS_TAG, mf.counter.in_frame_counters, iter );
 		else
 			break;
 	}
@@ -354,16 +361,17 @@ std::string MeasurementXmlFactory::MEASUREMENT_SUBFRAMES_TAG = "SubFrames";
 
 std::string MeasurementXmlFactory::TIME_DATA_FRAME_TAG = "TimeData";
 std::string MeasurementXmlFactory::TIME_DATA_FRAME_DURATION_TAG = "Duration";
-std::string MeasurementXmlFactory::TIME_DATA_FRAME_REAL_DURATION_TAG = "RealDuration";
+std::string MeasurementXmlFactory::TIME_DATA_FRAME_IN_FRAME_DURATION_TAG = "InFrameDuration";
 
 std::string MeasurementXmlFactory::MEMORY_DATA_FRAME_TAG = "MemoryData";
 std::string MeasurementXmlFactory::MEMORY_DATA_FRAME_START_HEAP_USAGE_TAG = "StartHeapUsage";
 std::string MeasurementXmlFactory::MEMORY_DATA_FRAME_END_HEAP_USAGE_TAG = "EndHeapUsage";
 std::string MeasurementXmlFactory::MEMORY_DATA_FRAME_HIGH_WATERMARK_TAG = "HighWatermark";
+std::string MeasurementXmlFactory::MEMORY_DATA_FRAME_IN_FRAME_HIGH_WATERMARK_TAG = "InFrameHighWatermark";
 
 std::string MeasurementXmlFactory::COUNTER_DATA_FRAME_TAG = "CounterData";
 std::string MeasurementXmlFactory::COUNTER_DATA_FRAME_COUNTERS_TAG = "Counters";
-std::string MeasurementXmlFactory::COUNTER_DATA_FRAME_REAL_COUNTERS_TAG = "RealCounters";
+std::string MeasurementXmlFactory::COUNTER_DATA_FRAME_IN_FRAME_COUNTERS_TAG = "InFrameCounters";
 std::string MeasurementXmlFactory::COUNTER_DATA_FRAME_COUNTER_TAG = "Counter";
 std::string MeasurementXmlFactory::COUNTER_DATA_FRAME_COUNTER_NAME_TAG	= "Name";
 std::string MeasurementXmlFactory::COUNTER_DATA_FRAME_COUNTER_VALUE_TAG = "Value";
diff --git a/alib2common/src/measurements/MeasurementXmlFactory.hpp b/alib2common/src/measurements/MeasurementXmlFactory.hpp
index cd6b0a3957c0297f17b8f9b82aa1c443aa360929..aec56d89563189860f202e26833e4f0fb0e21914 100644
--- a/alib2common/src/measurements/MeasurementXmlFactory.hpp
+++ b/alib2common/src/measurements/MeasurementXmlFactory.hpp
@@ -24,18 +24,19 @@ class MeasurementXmlFactory {
 	 // TimeDataFrame
 	static std::string TIME_DATA_FRAME_TAG;
 	static std::string TIME_DATA_FRAME_DURATION_TAG;
-	static std::string TIME_DATA_FRAME_REAL_DURATION_TAG;
+	static std::string TIME_DATA_FRAME_IN_FRAME_DURATION_TAG;
 
 	 // MemoryDataFrame
 	static std::string MEMORY_DATA_FRAME_TAG;
 	static std::string MEMORY_DATA_FRAME_START_HEAP_USAGE_TAG;
 	static std::string MEMORY_DATA_FRAME_END_HEAP_USAGE_TAG;
 	static std::string MEMORY_DATA_FRAME_HIGH_WATERMARK_TAG;
+	static std::string MEMORY_DATA_FRAME_IN_FRAME_HIGH_WATERMARK_TAG;
 
 	 // CounterDataFrame
 	static std::string COUNTER_DATA_FRAME_TAG;
 	static std::string COUNTER_DATA_FRAME_COUNTERS_TAG;
-	static std::string COUNTER_DATA_FRAME_REAL_COUNTERS_TAG;
+	static std::string COUNTER_DATA_FRAME_IN_FRAME_COUNTERS_TAG;
 	static std::string COUNTER_DATA_FRAME_COUNTER_TAG;
 	static std::string COUNTER_DATA_FRAME_COUNTER_NAME_TAG;
 	static std::string COUNTER_DATA_FRAME_COUNTER_VALUE_TAG;
diff --git a/alib2common/src/measurements/frames/CounterDataFrame.cpp b/alib2common/src/measurements/frames/CounterDataFrame.cpp
index 6cd25725fc252999cc37191840aa831a57bb5ab3..4541f95b22ccdb4cf36c77c44104d4bf2793c265 100644
--- a/alib2common/src/measurements/frames/CounterDataFrame.cpp
+++ b/alib2common/src/measurements/frames/CounterDataFrame.cpp
@@ -18,6 +18,7 @@ void CounterDataFrame::update ( unsigned, measurements::stealth_vector < Measure
 }
 
 void CounterDataFrame::hint ( unsigned frame_idx, measurements::stealth_vector < MeasurementFrame > & frames, CounterHint hint ) {
+	if ( frames[frame_idx].type == measurements::Type::ROOT ) return;
 
 	CounterHint::value_type delta = 0;
 
@@ -31,7 +32,7 @@ void CounterDataFrame::hint ( unsigned frame_idx, measurements::stealth_vector <
 		break;
 	}
 
-	frames[frame_idx].counter.real_counters[hint.name] += delta;
+	frames[frame_idx].counter.in_frame_counters[hint.name] += delta;
 
 	unsigned cur_idx = frame_idx;
 
@@ -48,20 +49,20 @@ void CounterDataFrame::hint ( unsigned frame_idx, measurements::stealth_vector <
 
 std::ostream & operator <<( std::ostream & os, const CounterDataFrame & cdf ) {
 
-	os << "(";
+	os << "cnts: (";
 
 	for ( auto it = cdf.counters.begin ( ); it != cdf.counters.end ( ); ++it ) {
-		os << it->first << " : " << it->second;
+		if ( it != cdf.counters.begin ( ) ) os << ", ";
 
-		if ( it != cdf.counters.end ( ) ) os << ", ";
+		os << it->first << " : " << it->second;
 	}
 
-	os << "), (";
+	os << "), if_cnts: (";
 
-	for ( auto it = cdf.real_counters.begin ( ); it != cdf.real_counters.end ( ); ++it ) {
-		os << it->first << " : " << it->second;
+	for ( auto it = cdf.in_frame_counters.begin ( ); it != cdf.in_frame_counters.end ( ); ++it ) {
+		if ( it != cdf.in_frame_counters.begin ( ) ) os << ", ";
 
-		if ( it != cdf.real_counters.end ( ) ) os << ", ";
+		os << it->first << " : " << it->second;
 	}
 
 	os << ")";
diff --git a/alib2common/src/measurements/frames/CounterDataFrame.hpp b/alib2common/src/measurements/frames/CounterDataFrame.hpp
index 1cd140533a60e83bffcd06574ebe44885d0cf4b9..287930a2998375a13d92fc6806c592618a262a4c 100644
--- a/alib2common/src/measurements/frames/CounterDataFrame.hpp
+++ b/alib2common/src/measurements/frames/CounterDataFrame.hpp
@@ -28,7 +28,7 @@ struct CounterHint {
 
 struct CounterDataFrame {
 	measurements::stealth_map < measurements::stealth_string, CounterHint::value_type > counters;
-	measurements::stealth_map < measurements::stealth_string, CounterHint::value_type > real_counters;
+	measurements::stealth_map < measurements::stealth_string, CounterHint::value_type > in_frame_counters;
 
 	static void init ( unsigned, measurements::stealth_vector < MeasurementFrame > & );
 	static void update ( unsigned, measurements::stealth_vector < MeasurementFrame > & );
diff --git a/alib2common/src/measurements/frames/MemoryDataFrame.cpp b/alib2common/src/measurements/frames/MemoryDataFrame.cpp
index 4e3f6635beb99fde8b0e50da107065d815a5602b..dd1bd8cb1041b1ed6ebe4cf4c4beed77e854e306 100644
--- a/alib2common/src/measurements/frames/MemoryDataFrame.cpp
+++ b/alib2common/src/measurements/frames/MemoryDataFrame.cpp
@@ -10,11 +10,20 @@ void MemoryDataFrame::init ( unsigned frame_idx, measurements::stealth_vector <
 	MeasurementFrame & current_frame = frames[frame_idx];
 	MeasurementFrame & parent_frame	 = frames[current_frame.parent_idx];
 
-	if ( parent_frame.type != measurements::Type::ROOT ) {
-		current_frame.memory.start_heap_usage = parent_frame.memory.current_heap_usage;
-		current_frame.memory.current_heap_usage = parent_frame.memory.current_heap_usage;
-		current_frame.memory.high_watermark = parent_frame.memory.current_heap_usage;
+	 // "hacky" adjustment, if this is the first user inserted frame, we reset ROOTs values to 0
+	 // beacause we want the heap usage to start at 0 and also we want to be able to propagate ROOTs values between separate
+	 // user OVERALL frames
+	if ( ( parent_frame.type == measurements::Type::ROOT ) && ( frames.size ( ) == 2 ) ) {
+		parent_frame.memory.start_heap_usage = 0;
+		parent_frame.memory.current_heap_usage = 0;
+		parent_frame.memory.high_watermark = 0;
+		parent_frame.memory.in_frame_high_watermark = 0;
 	}
+
+	current_frame.memory.start_heap_usage = parent_frame.memory.current_heap_usage;
+	current_frame.memory.current_heap_usage = parent_frame.memory.current_heap_usage;
+	current_frame.memory.high_watermark = parent_frame.memory.current_heap_usage;
+	current_frame.memory.in_frame_high_watermark = parent_frame.memory.current_heap_usage;
 }
 
 void MemoryDataFrame::update ( unsigned frame_idx, measurements::stealth_vector < MeasurementFrame > & frames ) {
@@ -24,11 +33,16 @@ void MemoryDataFrame::update ( unsigned frame_idx, measurements::stealth_vector
 	current_frame.memory.end_heap_usage = current_frame.memory.current_heap_usage;
 
 	 // if we end up with more memory from children, adjust watermark
-	if ( current_frame.memory.current_heap_usage > current_frame.memory.high_watermark )
-		current_frame.memory.high_watermark = current_frame.memory.current_heap_usage;
+	if ( current_frame.memory.current_heap_usage > current_frame.memory.in_frame_high_watermark )
+		current_frame.memory.in_frame_high_watermark = current_frame.memory.current_heap_usage;
+
+	if ( parent_frame.memory.high_watermark < current_frame.memory.in_frame_high_watermark )
+		parent_frame.memory.high_watermark = current_frame.memory.in_frame_high_watermark;
+
+	if ( current_frame.memory.high_watermark < current_frame.memory.in_frame_high_watermark )
+		current_frame.memory.high_watermark = current_frame.memory.in_frame_high_watermark;
 
-	if ( parent_frame.type != measurements::Type::ROOT )
-		parent_frame.memory.current_heap_usage = current_frame.memory.current_heap_usage;
+	parent_frame.memory.current_heap_usage = current_frame.memory.current_heap_usage;
 }
 
 void MemoryDataFrame::hint ( unsigned frame_idx, measurements::stealth_vector < MeasurementFrame > & frames, MemoryHint hint ) {
@@ -39,8 +53,8 @@ void MemoryDataFrame::hint ( unsigned frame_idx, measurements::stealth_vector <
 	case MemoryHint::Type::NEW:
 		current_frame.memory.current_heap_usage += hint.size;
 
-		if ( current_frame.memory.current_heap_usage > current_frame.memory.high_watermark )
-			current_frame.memory.high_watermark = current_frame.memory.current_heap_usage;
+		if ( current_frame.memory.current_heap_usage > current_frame.memory.in_frame_high_watermark )
+			current_frame.memory.in_frame_high_watermark = current_frame.memory.current_heap_usage;
 
 		break;
 
@@ -51,7 +65,7 @@ void MemoryDataFrame::hint ( unsigned frame_idx, measurements::stealth_vector <
 }
 
 std::ostream & operator <<( std::ostream & os, const MemoryDataFrame & mdf ) {
-	os << mdf.start_heap_usage << "shu, " << mdf.end_heap_usage << "ehu, " << mdf.high_watermark << "hw";
+	os << mdf.start_heap_usage << "B shu, " << mdf.end_heap_usage << "B ehu, " << mdf.high_watermark << "B hw, " << mdf.in_frame_high_watermark << "B if_hw";
 	return os;
 }
 
diff --git a/alib2common/src/measurements/frames/MemoryDataFrame.hpp b/alib2common/src/measurements/frames/MemoryDataFrame.hpp
index c7c0682acf0c15de5a7e6ad7fdc74e78da8301bf..4fdb5eec03128d5d9991946951e68e4c6128192a 100644
--- a/alib2common/src/measurements/frames/MemoryDataFrame.hpp
+++ b/alib2common/src/measurements/frames/MemoryDataFrame.hpp
@@ -30,7 +30,9 @@ struct MemoryDataFrame {
 
 	value_type start_heap_usage;
 	value_type end_heap_usage;
+
 	value_type high_watermark;
+	value_type in_frame_high_watermark;
 
 	value_type current_heap_usage;
 
diff --git a/alib2common/src/measurements/frames/TimeDataFrame.cpp b/alib2common/src/measurements/frames/TimeDataFrame.cpp
index 11a194db821c5fa7262c1021197473272818b651..c641a5f2a182b0b6fbd33cc7d67233251d9ce1b7 100644
--- a/alib2common/src/measurements/frames/TimeDataFrame.cpp
+++ b/alib2common/src/measurements/frames/TimeDataFrame.cpp
@@ -19,15 +19,15 @@ void TimeDataFrame::update ( unsigned frame_idx, measurements::stealth_vector <
 	MeasurementFrame & current_frame = frames[frame_idx];
 
 	current_frame.time.duration = duration_cast < microseconds > ( high_resolution_clock::now ( ) - current_frame.time.start );
-	current_frame.time.real_duration += current_frame.time.duration;
+	current_frame.time.in_frame_duration += current_frame.time.duration;
 
 	MeasurementFrame & parent_frame = frames[current_frame.parent_idx];
 
-	parent_frame.time.real_duration -= current_frame.time.duration;
+	parent_frame.time.in_frame_duration -= current_frame.time.duration;
 }
 
 std::ostream & operator <<( std::ostream & os, const TimeDataFrame & tdf ) {
-	os << tdf.duration << ", " << tdf.real_duration;
+	os << tdf.duration << " dur, " << tdf.in_frame_duration << " if_dur";
 	return os;
 }
 
diff --git a/alib2common/src/measurements/frames/TimeDataFrame.hpp b/alib2common/src/measurements/frames/TimeDataFrame.hpp
index 88282e8f4bce8fed292fe7bce5d60533a4b97a43..efb0664ab34790f81f385ad2a344950982eb2fa9 100644
--- a/alib2common/src/measurements/frames/TimeDataFrame.hpp
+++ b/alib2common/src/measurements/frames/TimeDataFrame.hpp
@@ -20,7 +20,7 @@ struct TimeDataFrame {
 	std::chrono::time_point < std::chrono::high_resolution_clock > start;
 
 	value_type duration;
-	value_type real_duration;
+	value_type in_frame_duration;
 
 	static void init ( unsigned, measurements::stealth_vector < MeasurementFrame > & );
 	static void update ( unsigned, measurements::stealth_vector < MeasurementFrame > & );
diff --git a/alib2common/test-src/measurements/MeasurementsTest.cpp b/alib2common/test-src/measurements/MeasurementsTest.cpp
index 3ad0114b5c36e18e6a3aeee5caea470b89e4bfab..96fb460c0c902d9803886b2e1c9665a874122ebc 100644
--- a/alib2common/test-src/measurements/MeasurementsTest.cpp
+++ b/alib2common/test-src/measurements/MeasurementsTest.cpp
@@ -85,6 +85,13 @@ void MeasurementsTest::testMemoryMeasurements ( ) {
 	delete[] bar;
 	measurements::end ( );
 
+	measurements::start ( "chunk3", measurements::Type::MAIN );
+	measurements::start ( "chunk31", measurements::Type::MAIN );
+		bar = new int[1000];
+		delete[] bar;
+	measurements::end ( );
+	measurements::end ( );
+
 	std::cout << measurements::MeasurementFormat::LIST << measurements::results ( ) << std::endl;
 	std::cout << measurements::MeasurementFormat::TREE << measurements::results ( ) << std::endl;
 	std::cout << measurements::MeasurementFormat::XML << measurements::results ( ) << std::endl;