take out recursive because: why?