made all params and return types Variants