move more block logic to mantle