add support for custom groupKey

also rename delete to remove since @amalloy hates the word delete.