use typeclass to differentiate constructors for each NumberOfMaster value