refactor: split ui parts