protected $possibleValues moved to abstract method getPossibleValues() to ease inheritance development