Re-factor the runtime class.

Add RuntimeUIStrategy for creating and showing the runtime window by provided params. This will separate the UI related implementations into the new strategy object.
they should do the same things as Application does