Add s3 storage feature, closes #3