I don't think it makes sense to create a new parser object every time. What about having a long lived parser object and then calling parser.parse(text)? This also avoids looking up `UiSelector.class.getDeclaredMethods()` over and over again.