Various enhancements

Issue #1 and #3.

- Differentiation between update() and save()
- Validation on create(), update(), and save()