two variants for dof