basic framework for a GUI