@craig: Better API