add tests (functional)