tests and interface