persistence and validation