Add UI, backend routes and improve logic