Many fixes, starting top-level header
Large update; still not working