basic boilerplate setup (pre-compo)