Made discussed changes, as well as sbroke out recursive decls.