trying to figure out a useful data structure for client handling