refactored cud operations