I’ve been learning java through programming a single max program for about four years. It’s structured the same way: mxj and max GUI objects and nearly zero max logic. I’m going to humbly suggest you work off my variant of model view controller. When I switched to this way of working, things got less buggy very quickly. If I have a complex patch that has crazy logic to it, I sometimes give the view, it’s own model-view-controller so that you don’t have to store button states in the main model. I have almost 25,000 lines of code written like this and I’m doing very well.