Added base GMM stubs
Updated GMM with ;preliminary class model
Added missing pragma once
Added some typedefs for convenience
Updated GMM to use typedefs and added missing pragma once