abstract class collaboration