code structure change, simple gui added, game engine integrated

now a main controller is in charge of the sub controllers and work as
the exposed interface.
units use gui to take turns