I don't feel qualified to render judgment on these larger issues. I'll leave it to your capable hands to refactor as you see fit.