Allow for null values and recursive templates