changed to interfaces