NB - It’s totally OK if the model you show to your users is not the model your code has under the hood, as long as it behaves the same. I.e. you can group things together that are separate in your code if the user doesn’t need to care about the distinction.