CRUD for customers

See commit comments.