-- setup basic component architecture