recursive works now