add tests and models