lots of type signature for cg