abstract class Unit