diff --git a/cml/controller/api.py b/cml/controller/api.py
index e02d2fbd16dd00bad7cac0736637b21449cb6a7f..ee3046a22feb8bae59290e06e51d831f019edef9 100644
--- a/cml/controller/api.py
+++ b/cml/controller/api.py
@@ -106,8 +106,16 @@ def construction(construct_type, *args, **kwargs):
     return create_construction_usecase.execute(create_constructor_req)
 
 
-def reconstruction():
-    pass
+def feature_selection(filter_ml_model, embedded_ml_model):
+    filter_method = FilterMethod(filter_ml_model)
+    embedded_method = EmbeddedMethod(embedded_ml_model)
+    settings = specific_settings_factory("feature_selection")
+    feature_selection_req = FeatureSelectionRequest(filter_method,
+                                                    embedded_method,
+                                                    settings)
+    feature_selection_usecase = FeatureSelectionUsecase()
+    return feature_selection_usecase.execute(feature_selection_req)
+
 
 
 def search_knowledge(constructor, reconstructor, data_source):