Split IO utilities into separate headers
Fix regression
Add missing license header