[refactor] Make sure each header can be included without having to include others