some api smoothing