more notes on the required methods
this is a class, not a role