Audit of $23.7 billion in federal funds shows overall improvement