1 Soak bread in milk, shred: Place the cubed bread in a large bowl and mix with the milk. Let sit for 5 to 10 minutes for the bread to absorb all of the milk. Once the bread has soaked up the milk, shred with the tines of a fork or by hand.

2 Sauté grated onion: Melt the butter in a sauté pan on medium-high heat. Stir in the grated onion and cook until translucent and softened, 3-4 minutes. Remove from heat and let cool for a minute.

3 Make meatball mixture with bread, onions, eggs, meat, spices: Stir the cooled onions into the milk bread mixture. Add the eggs, ground pork and beef, salt, pepper, nutmeg, and cardamom. Use your (clean) hands to mix everything together until well combined.

(If you have extra time, chilling the mixture for 20 minutes or so will make it easier to roll out the meatballs.)

4 Form meatballs: Use your hands to form the mixture into meatballs about 1 1/4-inch to 1 1/2-inch wide and place them on a plate or sheet pan. This recipe should make about 40 meatballs. Note that the meatballs will be a bit on the wet side.

5 Brown meatballs on all sides: Heat 3 Tbsp of butter in a large sauté pan on medium heat. When the butter is melted and foamy, start adding some meatballs to the pan.

Working in batches as to not crowd the pan, slowly brown the meatballs on all sides. Use a spoon or tongs to turn them. Handle the meatballs gently so they do not break apart as you turn them.

Once the meatballs have browned on all sides and are just cooked through, remove them from the pan to a bowl. You'll warm the meatballs in the sauce later.

Once you have removed the meatballs from the pan, wipe out the butter and browned and blackened bits with a paper towel and rinse out the pan.

We'll want to start with fresh butter because that way we won't pick up any burnt bits from the pan, and we will be able to more accurately gauge the amount of fat in the pan for making the meatball sauce in the next step.

6 Make a roux: To make the sauce, first make the roux. Add 3 Tbsp of fresh butter to the pan. Heat the butter in the pan on medium heat until it melts and starts to bubble up.

Slowly whisk in 3 Tbsp of flour. Stir until smooth. Continue to stir, allowing the flour mixture to cook, several minutes, until the roux is the color of coffee-with-cream.

7 Add stock to roux to make sauce: When the roux has cooked to a lovely shade of light brown, slowly add the stock to the roux, stirring as you add the stock.

The stock will sputter at first and the roux may seize up, but keep adding the stock slowly and keep stirring. Eventually the sauce will loosen and become silky.

8 Stir in sour cream and jelly if using: Remove the pan from heat and stir in the sour cream. If you are including jelly, either stir it in now or serve it on the side. Taste for seasonings and add more salt and pepper to taste (I use about 1/2 teaspoon of kosher salt, and 1/4 teaspoon of pepper.)

9 Add meatballs to sauce: Return the meatballs to the pan with the sauce and cook on low heat to warm the meatballs through for a few minutes.

10 Serve: Serve over mashed potatoes or egg noodles. Or serve individual Swedish meatballs dipped in gravy as an appetizer.