add a new API, #4