Melt butter and olive oil in large heavy pan. cook onions in over medium low heat until very carmelised. This step takes the longest, upt to 2 hrs to get all onions cooked down, sweet, and dark. Deglase pan with stock, add brandy/ wine salt and pepper. Toast bread, then top with cheese, and under broiler melt to bubbly and brown. Serve soup in bowls, with bread floated on top.