@Override 
	public void run(){
		System.out.println("Product: " + this.getProductName());
		if(bidderListeners.size() > 0){
			for(IAllowedBidsEventListener l : bidderListeners) l.onAllowedToBid(new AllowedToBidEvent(this));
			timer.start();
			System.out.println("Entered Wait");
			while(!timeEnded){
				try {
					sleep(100);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}}
			
			Collections.sort(allBids, new Comparator<BidEvent>() {
				public int compare (BidEvent b1, BidEvent b2) {
					return (int) (b1.getBidPrice() - b2.getBidPrice());
				}
			});
			
			winner = allBids.get(allBids.size()-1).getCustomer();
			for(IAllowedBidsEventListener l : bidderListeners) l.onAllBidsAreClosed(new BidsClosedEvent(this, winner));
			
		}
	}