added header that groups cross platform layer
really simplified program flow, this version probably works
critical bug still present in push_back, sometimes not allocating enough