Damjan's S3 Class changes

As I understand it, this will pull Damjan's changes into the main repository.

Hopefully this works the way I think it will!