that takes care of the UI