make blog more robust when published_at is missing
skip object delete if it has children
cleanup less files and use saving mixin