introduce Interfaces