S3 Abstraction

Improving the abstraction layer around Amazon S3.