extra helper variant constructor