abstract override