private LinkedList<Booking> getNextPossibleBookings(Date walkAlongStartDate, Date endDate, long duration){
		LinkedList<Booking> possibleBookings = new LinkedList<Booking>();
		Date walkAlongEndDate = new Date(walkAlongStartDate.getTime()+duration*1000);
		if(this.bookings.size()==0){
			if(walkAlongStartDate.getTime()>= endDate.getTime()){
				return possibleBookings;
			}
			//if there are no bookings, there can be no collision
			possibleBookings.add(new Booking(this, walkAlongStartDate, walkAlongEndDate));
		} else {
			for(Booking b : this.bookings){
				//current Start Date after latest end date?
				if(walkAlongStartDate.getTime()>= endDate.getTime()){
					return possibleBookings;
				}
				//jump over booking if it overlaps
				if(b.overlaps(walkAlongStartDate, walkAlongEndDate)){
					walkAlongStartDate = new Date(b.getEndTime().getTime()+1);
					walkAlongEndDate = new Date(walkAlongStartDate.getTime()+duration*1000);
				}
				if(!b.overlaps(walkAlongStartDate, walkAlongEndDate)){
					//we've got a booking. That's freaking awesome.
					possibleBookings.add(new Booking(this, walkAlongStartDate, walkAlongEndDate));
				}
			}			
		}
		return possibleBookings;
	}