implemented crud handler