slowly working on this... Not sure recursive is the way to go