separate core and gui in different modules
separate core and gui in different modules