work in progress

split UI to several controllers with generic controller