now that ctime/mtime are optional too, I wrote their calculation back into one liners, default val for them is nil anyway