PR cleanup + JS API