much improved UI flow