adding pragma once

because it is cleaner, simpler, and supported