allow custom component registration