First steps toward GUI, will add comments soon