Started of the abstraction of the UI
Split the UI module
Some rustdoc improvements