worked on s3 functionality