Grease and dust with a bit of flour a 13x9 baking dish and set aside. Make sure you use a deep pan, otherwise the batter will overflow in the oven, this is very important.
In a large mixing bowl whisk together all-purpose flour, sugar, baking powder, baking soda, and salt until combined.
Using a hand mixer to a stand mixer, beat in softened butter into the flour mixture until all combined and crumbly.
Add in eggs, vanilla, and buttermilk and beat until fully combined, the mixture should be fluffy.
Pour the batter into the prepared baking dish and spread it evenly.
In a small bowl, using a for mix together the softened butter, flour, sugar and cinnamon until soft crumbs form.
Sprinkle the cinnamon evenly over the cake batter. Set aside.
In a large mixing bowl, beat cream cheese, once creamy, beat it sugar.
Once combined, beat in eggs and vanilla extract until light and fluffy, about 3-5 minutes.
Scoop the cheesecake filling over the cinnamon filling and using a spatula spread it evenly.
In a large bowl, mix sugar with cinnamon and salt. Add in the melted butter and combine using a fork.
Once the butter is fully combined, add the flour and mix with a fork or using your hands until fully combined.
Sprinkle streusel topping over the cheesecake layer until evenly distributed.
Bake cake in a 350 degree oven for about 45-50 minutes, until fully cooked.
Cool completely and after that refrigerate it for 3-4 hours for the cheesecake layer to fully settle before serving.
Add the powdered sugar to a medium bowl, add two tablespoons of milk and the vanilla extract. Mix until fully combined with no lumps. If the mixture is too thick add one more tablespoon of milk. I like the glaze on the thicker side, yet pourable, so it will look white and shiny, not transparent.
Use a fork or spoon to drizzle the icing over the cake.