I'm going to have to change some c++ templates to match the init interfaces as they must not be in the return type