initial verison with a 'variable' type