first UI pass