add view abstacted