work on validation and tests