add tests
cleanup tests
cleanup tests
can be initialised with default values
now also returns a promise