#pragma once should come before any includes