rearranging, adding initial keyboard support.
supporting multiple windows per instance
Initial Commit.