moved to interfaces