I'm getting really stuck on basic program structure in embassy. The examples create everything in the main function, but is there a nice way to abstract the board specific stuff into a board file, and all the init stuff into a init function? Or is the Hal way of `static BUTTON: Mutex>> = ...` the only way to do it? Are there any good examples of larger projects? Sorry for the beginner questions, any help would be much appreciated!