able to recurse on construction