German Chocolate Cheesecake

Yes!  It's like a German Chocolate Cake, but as a Cheesecake, which makes it even better!  Prepare for super yummy creaminess in every single bite.  Enjoy!
For crust:
-1 sleeve (9 whole crackers) chocolate graham crackers
-2 Tbs packed brown sugar
-1/4 cup unsalted butter, melted
For filling:
-2 (8 oz each) packages cream cheese, at room temperature
-1 cup semisweet chocolate chips, melted and cooled
-2/3 cup packed brown sugar
-2 Tbs unsweetened cocoa powder
-5 eggs
-1 tsp almond extract
-1 tsp vanilla extract
For topping:
-3/4 cup sweetened coconut flakes
-3/4 cup chopped walnuts
-1/3 cup packed brown sugar
-1/3 cup half and half
-5 Tbs unsalted butter
Preheat oven to 350 F.  Coat the bottom and sides of a 9-in spring pan with cooking spray. Set aside.
In your food processor crumble the chocolate graham crackers.  Combine with the brown sugar and butter.  Mix well and press on bottom of prepared spring pan.
Bake in preheated oven for 10 minutes.  Remove pan onto wire rack and let it cool.  Do not turn off the stove!
While the crust is cooking, let's make the filling.  In your mixer's bowl, beat the cream cheese until smooth.  Slowly, add remaining filling ingredients, one at a time, and mix until well incorporated.  Pour filling over cooled crust. 
Place pan with cheesecake in large baking pan.  Fill the larger pan with 1 inch of water.  Place in the oven and bake for 50-55 minutes (at 350 F) or until center is just set and top appears dull.  Remove springform pan from water bath.  Place on wire rack and cool for 10 minutes.  Carefully, run a knife around the edge of the pan to loosen.  Leave on wire rack and cool for 1 more hour.
Place in the fridge and cool for at least 4 hours or overnight.
When cooling process is finished, make the topping.
In a large saucepan, combine all topping ingredients.  Bring to a boil over medium heat.  Cook, stirring occasionally for 3 minutes.  Remove from stove and cool.  Spread over cheesecake.  Slice and enjoy!