I don't have any strong objection - can you give a bit more context on why you're leaning that way? Seemed to me that the bucket should be responsible for building the ACL -- I don't have a problem with an ACL building itself, but that would just be..

```python
self.acl = BucketACL(bucket=self)
self.acl.reload()  # This might happen in the constructor, might not...
```

The argument for this happening in the constructor is: "I'm loading an ACL for a bucket, it should have the access data for the Bucket in there already so I can check it."

The argument against is: "I'm building an ACL so that I can set it the way I want. I don't care what's in there already."

With more context (and maybe a proposed API) I think we can have a more meaningful discussion :)