CubeMX is a great tool but there is something I am not understanding. I am using System Workbench to write my project. If I go back to CubeMX to make a change it tend to wipe out the code I've added to main.c. Should I put all my code in a separate source file and leave main.c as unchanged as possible? What is the right way to do this?