added a header and a guard