CG2 by @HPringle