add additional comments
simplify code for can_block