basic gui, render, and controller set up