added header guards