models and first attempt on validation (to be improved)