Yes, .properties and .keys and .ownProperties almost the same and only little different. The three need refactor using .properties with `{exacly: Boolean, own: Boolean}` argument.

But it another thing for blockify, I think we could implement blockify first. Then create a new branch to do so.