redesigned ->parse() and ->result()