refactoring code
join discussion
update components