User full CRUD logic