finished gists base class, not yet tested