add support for creating component by template