added abstract view