improved setup API