gui skeleton
add controller to handle event