Wrap associated data and methods

The API was too cluttered. This should fix that.