New interface + (some) new tests