initial setup, markup and styles