component registry & renderer