public OrderReport processMarketOrder(int time, String side, 
											int qty, String takerId, boolean verbose) {
		ArrayList<Trade> trades = new ArrayList<Trade>();
		int qtyRemaining = qty;
		if (side =="bid") {
			this.lastOrderSign = 1;
			while ((qtyRemaining > 0) && (this.asks.getnOrders() > 0)) {
				OrderList ordersAtBest = this.asks.minPriceList();
				qtyRemaining = processOrderList(trades, ordersAtBest, 
												qtyRemaining, side, takerId, 
												time, verbose);
			}
		}else if(side=="offer") {
			this.lastOrderSign = -1;
			while ((qtyRemaining > 0) && (this.bids.getnOrders() > 0)) {
				OrderList ordersAtBest = this.bids.maxPriceList();
				qtyRemaining = processOrderList(trades, ordersAtBest, 
												qtyRemaining, side, takerId,
												time, verbose);
			}
		}else {
			throw new IllegalArgumentException("order neither market nor limit: " + 
				    						    side);
		}
		OrderReport report = new OrderReport(trades, false);
		return  report;
	}