I think I've gotten a little confused about structuring my code. Code is never clean enough. So I spend much time refactoring and thinking of better ways to simplify code to make it easier to read later.
I fell into this trap when I first started writing code. Things would look messy, sloppy, or seem like they could be refactored, redone, renamed, restructured, just to make the code better. Do you know what I learned from all this? You can spend way too much time on this, when the code is never used again or read by anyone. There are so many projects that I spent a lot of time on designing, testing, refactoring, and nurturing only to find that the project was canceled, requirements changed so the code wasn't needed, or I designed a generic, all-purpose solution and ended up only needing 10% of the features.
Many times I made a one-off program to do a little thing, and didn't worry about the structure and all, and those turned into multi-year projects. That messy code at the beginning never really hurt me at all. I just refactored or rewrote the ugly stuff once I knew what I really needed.
Bottom line, don't worry about the "right" way. Right this very minute people are arguing that OOP is terrible and the reason all software is crap. We don't know the "Right" way because its different for every project.