variant CRUD complete