Cook macaroni according to the package instructions or until just al dente. Be careful not to overcook since the pasta will absorb some sauce during baking and become softer.
Drain pasta and set aside.
In a large sauce pan, melt butter and add flour. Stir to combine and make a roux. Next add milk and whisk completely until the sauce starts to thicken. Next add the cheese and stir to combine until melted whisking out any lumps.
Taste the cheese mixture and add the salt & pepper, paprika and ground mustard until it has a good taste. When you are content with the taste, add in the pasta and stir well until combined.
Butter or spray a 9 x 9 inch baking dish. Pour the macaroni and cheese into the baking dish.
Sprinkle with fresh buttered bread crumbs or panko (optional) and bake for 35-45 minutes or until it is hot and bubbly. It will firm up as it cools. Let stand for about 10-15 minutes or until fully set before serving.