Add more pragma once and forward declarations