Cook bacon in large pot until crispy.
Remove bacon and set aside.
Sauté onions in bacon fat until soft.
Add garlic and cook one minute more.
Add diced potatoes and chicken broth.
Bring mixture to a rolling boil.
Reduce heat and simmer twenty minutes.
Mash half the potatoes in pot.
Mix butter and flour in small bowl.
Stir flour mixture into soup slowly.
Add heavy cream and cheese gradually.
Season with salt and pepper carefully.
Simmer five minutes until thickened perfectly.
Garnish with bacon and green onions.