work on addComponent