So. For a minigame I am currently coding players can use skills/abilities, these skills/abilities must be bought and can be upgraded EACH. So I was thinking of a way to do such a thing maybe by adding a TON of booleans and other instance variables to my minigame player class which seemed inefficient. Instead; what I had done was use an abstract class called Skill and make other classes that extend Skill, such as the individual skills classes. This all works well for executing the skills ability and such but it has no intent of being player specific. I've been struggling to find a good system to to manage what skills a player has and what level that skill is. If anyone has any suggestions, even a few words, I would greatly appreciate it!