sync up the code for these variants so it can be a common file to copy with parameter changes