tests and validation