Rewriting UI System to be more stable and easier to use and modify