Firstly required UI and functionality