extend Component interface