correct code and interface