add getComponentsStream method