Corrected recursive init