add 2 versions of gray code generator