more general types in interfaces