refactored and added choose stream functionality