add spec
add API