Split header-related stuff into a different file for better organization