Interface is OK, need to specify client API before implementing it.