After realizing this, I realized that I am so far away from perfect. I'll just do my best to make the architecture somewhat future proof without writing unnecessary code.