refator componment