Working version with separate decorators. S3 methods need fixes