public CreateRefundViewModel(
			IViewModelsFactory<IRefundDetailsStepViewModel> detailsVmFactory, 
			IViewModelsFactory<IRefundSummaryStepViewModel> summaryVmFactory, 
			Foundation.Orders.Model.Order item, 
			decimal defaultAmount)
		{
			
			InnerModel = new CreateRefundModel { Order = item, Amount = defaultAmount };

			var itemParameter = new KeyValuePair<string, object>("item", InnerModel);
			RegisterStep(detailsVmFactory.GetViewModelInstance(itemParameter));
			RegisterStep(summaryVmFactory.GetViewModelInstance(itemParameter));
		}
		protected CreateRefundViewModel(CreateRefundModel item)
		{
			InnerModel = item;
		}
		public RefundSummaryStepViewModel(CreateRefundModel item, IOrderService orderService)
			: base(item)
		{
			_orderService = orderService;
			SubmitPaymentCommand = new DelegateCommand(RaiseSubmitPaymentInteractionRequest, () => !_createPaymentSucceeded);
		}
		public RefundDetailsStepViewModel(CreateRefundModel item, IPaymentMethodRepository repository, StoreClient client)
			: base(item)
		{
			item.NewPaymentSource = GetNewPaymentModel(item.Order, repository, client);

			InnerModel.PropertyChanged += InnerModel_PropertyChanged;
			InnerModel.NewPaymentSource.NewPayment.PropertyChanged += InnerModel_PropertyChanged;
		}