See more
A good abstraction splits the problems along its orthogonal concerns, factors out the generic concerns, and leaves us to deal only with the specifics of each particular problem — the things we care about.
If it’s normal, it’s average. If it’s average, it’s probably closer to mediocre than you really want to be.