added GCM class