each piece has their own code