diff --git a/alib2cli/src/command/IntrospectionCommand.h b/alib2cli/src/command/IntrospectionCommand.h
index e205304609883a444a4942b4733ab54cc51962e4..bd3599f5f36798213a09466bc5bc77f50bcb6960 100644
--- a/alib2cli/src/command/IntrospectionCommand.h
+++ b/alib2cli/src/command/IntrospectionCommand.h
@@ -7,17 +7,19 @@
 namespace cli {
 
 class IntrospectionCommand : public Command {
-	std::string m_algorithm;
+	std::string m_param;
 
 public:
-	IntrospectionCommand ( std::string algorithm ) : m_algorithm ( std::move ( algorithm ) ) {
+	IntrospectionCommand ( std::string param ) : m_param ( std::move ( param ) ) {
 	}
 
 	virtual Command::Result run ( Environment & ) const override {
-		if ( m_algorithm == "" ) {
+		if ( m_param == "" ) {
 			abstraction::Registry::listAlgorithms ( );
+		} else if ( m_param.find ( "::", m_param.size ( ) - 2 ) != std::string::npos ) {
+			abstraction::Registry::listGroup ( m_param );
 		} else {
-			abstraction::Registry::listAlgorithmOverloads ( m_algorithm );
+			abstraction::Registry::listAlgorithmOverloads ( m_param );
 		}
 		return Command::Result::OK;
 	}
diff --git a/alib2common/src/abstraction/AlgorithmRegistry.hpp b/alib2common/src/abstraction/AlgorithmRegistry.hpp
index 1f8289913cf3970ac57733406f3ec94727edabc4..d0be14f639f5cd7d3d1d9e20f8283fe062e46c0c 100644
--- a/alib2common/src/abstraction/AlgorithmRegistry.hpp
+++ b/alib2common/src/abstraction/AlgorithmRegistry.hpp
@@ -103,6 +103,13 @@ public:
 		return getAbstraction ( std::move ( name ), paramTypes, downcast, normalize );
 	}
 
+	static void listGroup ( const std::string & group ) {
+		for ( const std::pair < const std::string, std::map < std::vector < std::type_index >, std::unique_ptr < Entry > > > & entry : getEntries ( ) ) {
+			if ( entry.first.find ( group ) == 0 ) //found at the begining
+				std::cout << entry.first << std::endl;
+		}
+	}
+
 	static void listOverloads ( const std::string & algorithm ) {
 		auto group = getEntries ( ).find ( algorithm );
 		if ( group == getEntries ( ).end ( ) )
diff --git a/alib2common/src/abstraction/Registry.cpp b/alib2common/src/abstraction/Registry.cpp
index 3602f5c32649db92380e1357aa101ac13cebc11f..7cdcba289f68c868312d952c3698a1341692dc81 100644
--- a/alib2common/src/abstraction/Registry.cpp
+++ b/alib2common/src/abstraction/Registry.cpp
@@ -18,6 +18,10 @@
 
 namespace abstraction {
 
+void Registry::listGroup ( const std::string & group ) {
+	AlgorithmRegistry::listGroup ( group );
+}
+
 void Registry::listAlgorithmOverloads ( const std::string & algorithm ) {
 	AlgorithmRegistry::listOverloads ( algorithm );
 }
diff --git a/alib2common/src/abstraction/Registry.h b/alib2common/src/abstraction/Registry.h
index af45365e53f795e62ff58a738a914e264aceb126..6a511e1ebb083a2ece2d5570a372ffdfdbddef1b 100644
--- a/alib2common/src/abstraction/Registry.h
+++ b/alib2common/src/abstraction/Registry.h
@@ -14,6 +14,7 @@ namespace abstraction {
 
 class Registry {
 public:
+	static void listGroup ( const std::string & algorithm );
 	static void listAlgorithmOverloads ( const std::string & algorithm );
 	static void listAlgorithms ( );