refactored the kinesis backend to support new backends