change: refactor API