reorganize
handle returns in blocks
handle raise breaks