modify the api and it can support int float bool string