add UI
maybe pure api is not a good idea