wrote two interfaces and a unit test