Establish arguments and necessary branches