new CRUD functions and other refinements