some code review and add class Component