basic list interaction model + refined ui