create components and attributes