merge the recursive and subset training branches together