changed lists to generate precisely what is needed instead of passing whole objects