metal programming guide