@nlegoff what about a restriction to these four values ? ie  throwing an exception if another type is passed ?