Much formatting and header guards