abstract & private ?