added s3 i/o