added new get_components() method