adding strcuts and do macro