lots of changes, adding gui controller
lots of changes