main && header modified