interface defined