Don't need if statements if we're using the null obj pattern in this context
Cleaned up properties
Added doc block for setLogger
Added docblock for makeLog
Added docblock to destructor
Added more docblocks and tidied up generally
tidied up the base model
New docblock in message
More docblocks and tidying up
Sorted out properties in BaseCollection
Moved property
Moved property
Merge conflicts fixed