Eliminated unnecessary headers from the public interface
Added necessary headers and hopefully fixed the restart function
Added necessary header to the private interface
Added necessary headers and eliminated pedantic warnings about anonymous structs and unions