add gem stuff and tests