added user input support for source and target