Updated to do recursive