move buffer creation to view, provide abstract view base class