added s3 storage functionality