+ refactoring, render_func component added