add attribute document and let Moo look after it, also make them all lazy
use attribute document
initialise -> _initialise