Add sidekiq, move group generation to worker