adding components and boilerplate