extract interface, add one test