better now, recursive not done