Complete gem and tests