add CRUD interface