should be ``private``, and the ``$constraint`` argument should be typehinted