add codes to support AWS SNS and all 9 use stories