validating on save -- still needs tests