refactor to use ZTK::UI class