function migrateFund(address _newContract, address[] _tokens) public {

		require(_newContract != address(0)&& ILoanLogic(contractLoanLogic).hasUnpaidLoan(msg.sender)== false);

    

		Balance _newBalance= Balance(_newContract);



		uint256 _amountEther = account2Token2Balance[msg.sender][0];

		if (_amountEther > 0) {

			account2Token2Balance[msg.sender][0] = 0;

			_newBalance.depositFromUserMigration.value(_amountEther)(msg.sender);

		}



		for (uint16 n = 0; n < _tokens.length; n++) {

			address _token = _tokens[n];

			require(_token != address(0)); 

			uint256 _amountToken = account2Token2Balance[msg.sender][_token];

      

			if (_amountToken != 0) {      

				require(IToken(_token).approve(_newBalance, _amountToken));

				account2Token2Balance[msg.sender][_token] = 0;

				_newBalance.depositTokenFromUserMigration(_token, _amountToken, msg.sender);

			}

		}



		emit OnFundsMigrated(msg.sender, _newBalance, now);

	}