I wonder if it's worth moving those private methods one scope higher, so they are shared between UIComponent instances. This way we won't create them every time we create new instance. The only thing to keep in mind is that if those private methods use instance's variables (like componentConfig), those should be passed as parameters.