WIP: Add Variant template class