addresstypes should be avoided in favour of contract or interface types
@title: short title. shouldn't repeat the description
@notice: descriptive enough so that the reader understands the intent of the contract.
@notice: explain what the function does
@param: explain each parameter
@return: explain the return param(s)
@notice: describe when the event is emitted
@param: describe each of the args