improve advanced API